Plotly-dot-plots-and-table

提供:Dev Guides
移動先:案内検索

Plotly-ドットプロットとテーブル

ここでは、Plotlyのドットプロットとテーブル関数について学習します。 まず、ドットプロットから始めましょう。

ドットプロット

ドットプロットは、非常に単純なスケールでポイントを表示します。 ポイント数が多いと乱雑に見えるため、少量のデータにのみ適しています。 ドットプロットは*クリーブランドドットプロット*とも呼ばれます。 それらは、2つ(またはそれ以上)の時点間または2つ(またはそれ以上)の条件間の変化を示します。

ドットプロットは、横棒グラフに似ています。 ただし、雑然とすることが少なくなり、条件間の比較が容易になります。 この図は、mode属性がマーカーに設定された散布図をプロットします。

次の例は、インド独立後の各国勢調査で記録された男女間の識字率の比較を示しています。 グラフの2つのトレースは、1951年から2011年までの各国勢調査における男女の識字率を表しています。

from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected = True)
census = [1951,1961,1971,1981,1991,2001, 2011]
x1 = [8.86, 15.35, 21.97, 29.76, 39.29, 53.67, 64.63]
x2 = [27.15, 40.40, 45.96, 56.38,64.13, 75.26, 80.88]
traceA = go.Scatter(
   x = x1,
   y = census,
   marker = dict(color = "crimson", size = 12),
   mode = "markers",
   name = "Women"
)
traceB = go.Scatter(
x = x2,
y = census,
marker = dict(color = "gold", size = 12),
mode = "markers",
name = "Men")
data = [traceA, traceB]
layout = go.Layout(
   title = "Trend in Literacy rate in Post independent India",
   xaxis_title = "percentage",
   yaxis_title = "census"
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)

出力は以下のようになります-

クリーブランドドットプロット

Plotlyのテーブル

PlotlyのTableオブジェクトは* go.Table()*関数によって返されます。 テーブルトレースは、行と列のグリッドで詳細なデータを表示するのに役立つグラフオブジェクトです。 テーブルは列優先順を使用しています。 グリッドは列ベクトルのベクトルとして表されます。

  • go.Table()関数の2つの重要なパラメーターは、テーブルの最初の行である *header と残りの行を形成する cells です。 どちらのパラメーターも辞書オブジェクトです。 ヘッダーの値属性は、列見出しのリストとリストのリストであり、それぞれが1つの行に対応しています。

さらなるスタイリングのカスタマイズは、linecolor、fill_color、font、およびその他の属性によって行われます。

以下のコードは、最近終了したクリケットワールドカップ2019のラウンドロビンステージのポイントテーブルを示しています。

trace = go.Table(
   header = dict(
      values = ['Teams','Mat','Won','Lost','Tied','NR','Pts','NRR'],
      line_color = 'gray',
      fill_color = 'lightskyblue',
      align = 'left'
   ),
   cells = dict(
      values =
      [
         [
            'India',
            'Australia',
            'England',
            'New Zealand',
            'Pakistan',
            'Sri Lanka',
            'South Africa',
            'Bangladesh',
            'West Indies',
            'Afghanistan'
         ],
         [9,9,9,9,9,9,9,9,9,9],
         [7,7,6,5,5,3,3,3,2,0],
         [1,2,3,3,3,4,5,5,6,9],
         [0,0,0,0,0,0,0,0,0,0],
         [1,0,0,1,1,2,1,1,1,0],
         [15,14,12,11,11,8,7,7,5,0],
         [0.809,0.868,1.152,0.175,-0.43,-0.919,-0.03,-0.41,-0.225,-1.322]
      ],
      line_color='gray',
      fill_color='lightcyan',
      align='left'
   )
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

出力は以下のとおりです-

テーブルデータは、Pandasデータフレームから入力することもできます。 以下のようにコンマ区切りファイル( points-table.csv )を作成しましょう-

Teams Mat Won Lost Tied NR Pts NRR
India 9 7 1 0 1 15 0.809
Australia 9 7 2 0 0 14 0.868
England 9 6 3 0 0 14 1.152
New Zealand 9 5 3 0 1 11 0.175
Pakistan 9 5 3 0 1 11 -0.43
Sri Lanka 9 3 4 0 2 8 -0.919
South Africa 9 3 5 0 1 7 -0.03
Bangladesh 9 3 5 0 1 7 -0.41
Teams,Matches,Won,Lost,Tie,NR,Points,NRR
India,9,7,1,0,1,15,0.809
Australia,9,7,2,0,0,14,0.868
England,9,6,3,0,0,12,1.152
New Zealand,9,5,3,0,1,11,0.175
Pakistan,9,5,3,0,1,11,-0.43
Sri Lanka,9,3,4,0,2,8,-0.919
South Africa,9,3,5,0,1,7,-0.03
Bangladesh,9,3,5,0,1,7,-0.41
West Indies,9,2,6,0,1,5,-0.225
Afghanistan,9,0,9,0,0,0,-1.322

ここで、このcsvファイルからデータフレームオブジェクトを作成し、それを使用して以下のようにテーブルトレースを作成します-

import pandas as pd
df = pd.read_csv('point-table.csv')
trace = go.Table(
   header = dict(values = list(df.columns)),
   cells = dict(
      values = [
         df.Teams,
         df.Matches,
         df.Won,
         df.Lost,
         df.Tie,
         df.NR,
         df.Points,
         df.NRR
      ]
   )
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)