Plotly-bar-and-pie-chart

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

Plotly-棒グラフと円グラフ

この章では、Plotlyを使用して棒グラフと円グラフを作成する方法を学びます。 棒グラフについて理解することから始めましょう。

棒グラフ

棒グラフは、高さまたは長さがそれらが表す値に比例する長方形の棒でカテゴリカルデータを表します。 バーは垂直または水平に表示できます。 個別のカテゴリ間の比較を表示するのに役立ちます。 チャートの1つの軸は比較される特定のカテゴリを示し、もう1つの軸は測定値を表します。

次の例は、さまざまなコースに登録されている学生の数に関する簡単な*棒グラフ*をプロットしています。 * go.Bar()*関数は、x座標が被験者のリストとして設定され、y座標が生徒数として設定されたバートレースを返します。

import plotly.graph_objs as go
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
data = [go.Bar(
   x = langs,
   y = students
)]
fig = go.Figure(data=data)
iplot(fig)

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

棒グラフ

グループ化された棒グラフを表示するには、Layoutオブジェクトの barmode プロパティを group に設定する必要があります。 次のコードでは、毎年の学生を表す複数のトレースが被験者に対してプロットされ、グループ化された棒グラフとして表示されます。

branches = ['CSE', 'Mech', 'Electronics']
fy = [23,17,35]
sy = [20, 23, 30]
ty = [30,20,15]
trace1 = go.Bar(
   x = branches,
   y = fy,
   name = 'FY'
)
trace2 = go.Bar(
   x = branches,
   y = sy,
   name = 'SY'
)
trace3 = go.Bar(
   x = branches,
   y = ty,
   name = 'TY'
)
data = [trace1, trace2, trace3]
layout = go.Layout(barmode = 'group')
fig = go.Figure(data = data, layout = layout)
iplot(fig)

同じの出力は次のとおりです-

グループ化された棒グラフ

*barmode* プロパティは、同じ位置座標の棒がグラフにどのように表示されるかを決定します。 定義された値は、「スタック」(棒が互いに積み重ねられている)、「相対」、(棒が互いに積み重ねられており、軸の下に負の値があり、正の値が上にある)、「*グループ*」(棒がプロットされている)隣同士)。

barmodeプロパティを ‘ stack ’に変更すると、プロットされたグラフは次のようになります-

スタックプロットグラフ

円グラフ

円グラフには、1つのシリーズのデータ​​のみが表示されます。 *円グラフ*は、1つのデータ系列内のアイテム(*ウェッジと呼ばれる)のサイズを、アイテムの合計に比例して示します。 データポイントは、パイ全体のパーセンテージとして表示されます。

*graph_objs* モジュールの* pie()*関数– * go.Pie()*は、Pieトレースを返します。 2つの必須の引数は *labels* と *values* です。 ここで示した例のように、言語コースと学生数の簡単な円グラフをプロットしてみましょう。
import plotly
plotly.tools.set_credentials_file(
   username = 'lathkar', api_key = 'U7vgRe1hqmRp4ZNf4PTN'
)
from plotly.offline import iplot, init_notebook_mode
init_notebook_mode(connected = True)
import plotly.graph_objs as go
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
trace = go.Pie(labels = langs, values = students)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)

次の出力はJupyter Notebookに表示されます-

円グラフ

ドーナツグラフ*は、中央に丸い穴があり、ドーナツのように見える円グラフです。 次の例では、2つのドーナツグラフが1X2グリッドレイアウトで表示されています。 「*ラベル」のレイアウトは両方の円グラフのトレースで同じですが、各サブプロットの行と列の宛先はドメインプロパティによって決まります。

この目的のために、2019年の議会選挙における党ごとの議席と投票シェアのデータを使用します。 Jupyterノートブックセルに次のコードを入力してください-

parties = ['BJP', 'CONGRESS', 'DMK', 'TMC', 'YSRC', 'SS', 'JDU','BJD', 'BSP','OTH']
seats = [303,52,23,22,22,18,16,12,10, 65]
percent = [37.36, 19.49, 2.26, 4.07, 2.53, 2.10, 1.46, 1.66, 3.63, 25.44]
import plotly.graph_objs as go
data1 = {
   "values": seats,
   "labels": parties,
   "domain": {"column": 0},
   "name": "seats",
   "hoverinfo":"label+percent+name",
   "hole": .4,
   "type": "pie"
}
data2 = {
   "values": percent,
   "labels": parties,
   "domain": {"column": 1},
   "name": "vote share",
   "hoverinfo":"label+percent+name",
   "hole": .4,
   "type": "pie"
}
data = [data1,data2]
layout = go.Layout(
   {
      "title":"Parliamentary Election 2019",
      "grid": {"rows": 1, "columns": 2},
      "annotations": [
         {
            "font": {
               "size": 20
            },
            "showarrow": False,
            "text": "seats",
            "x": 0.20,
            "y": 0.5
         },
         {
            "font": {
               "size": 20
            },
            "showarrow": False,
            "text": "votes",
            "x": 0.8,
            "y": 0.5
         }
      ]
   }
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)

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

ドーナツチャート