Plotly-polar-chart-and-radar-chart
Plotly-ポーラーチャートとレーダーチャート
この章では、Plotlyを使用して極座標チャートとレーダーチャートを作成する方法を学びます。
まず、極座標チャートについて検討しましょう。
ポーラーチャート
極座標チャートは、円形グラフの一般的なバリエーションです。 データポイント間の関係を半径と角度で最も簡単に視覚化できる場合に便利です。
極座標チャートでは、シリーズは極座標系の点を結ぶ閉じた曲線で表されます。 各データポイントは、極からの距離(半径座標)および固定方向からの角度(角度座標)によって決定されます。
極座標チャートは、放射軸と角度軸に沿ったデータを表します。 半径座標と角度座標は、* go.Scatterpolar()関数の *r および theta 引数で指定されます。 シータデータはカテゴリになり得ますが、数値データも可能であり、最も一般的に使用されます。
次のコードは、基本的な極座標チャートを生成します。 r引数とtheta引数に加えて、モードを lines に設定します(データポイントのみが表示される場合は、マーカーにも設定できます)。
import numpy as np
r1 = [0,6,12,18,24,30,36,42,48,54,60]
t1 = [1,0.995,0.978,0.951,0.914,0.866,0.809,0.743,0.669,0.588,0.5]
trace = go.Scatterpolar(
r = [0.5,1,2,2.5,3,4],
theta = [35,70,120,155,205,240],
mode = 'lines',
)
data = [trace]
fig = go.Figure(data = data)
iplot(fig)
出力は以下のとおりです-
次の例では、コンマ区切り値(CSV)ファイル*のデータを使用して極座標チャートを生成しています。 *polar.csv の最初の数行は次のとおりです-
y,x1,x2,x3,x4,x5,
0,1,1,1,1,1,
6,0.995,0.997,0.996,0.998,0.997,
12,0.978,0.989,0.984,0.993,0.986,
18,0.951,0.976,0.963,0.985,0.969,
24,0.914,0.957,0.935,0.974,0.946,
30,0.866,0.933,0.9,0.96,0.916,
36,0.809,0.905,0.857,0.943,0.88,
42,0.743,0.872,0.807,0.923,0.838,
48,0.669,0.835,0.752,0.901,0.792,
54,0.588,0.794,0.691,0.876,0.74,
60,0.5,0.75,0.625,0.85,0.685,
ノートブックの入力セルに次のスクリプトを入力して、以下のように極座標チャートを生成します-
import pandas as pd
df = pd.read_csv("polar.csv")
t1 = go.Scatterpolar(
r = df['x1'], theta = df['y'], mode = 'lines', name = 't1'
)
t2 = go.Scatterpolar(
r = df['x2'], theta = df['y'], mode = 'lines', name = 't2'
)
t3 = go.Scatterpolar(
r = df['x3'], theta = df['y'], mode = 'lines', name = 't3'
)
data = [t1,t2,t3]
fig = go.Figure(data = data)
iplot(fig)
以下は、上記のコードの出力です-
レーダーチャート
レーダーチャート(*スパイダープロット*または*スタープロット*とも呼ばれます)は、多変量データを、中心から始まる軸上に表された量的変数の2次元チャートの形式で表示します。 軸の相対的な位置と角度は、通常、情報を提供しません。
レーダーチャートの場合、一般的なケースでは、* go.Scatterpolar()*関数でカテゴリカル角度変数を含む極座標チャートを使用します。
次のコードは、* Scatterpolar()関数*を使用して基本的なレーダーチャートをレンダリングします-
radar = go.Scatterpolar(
r = [1, 5, 2, 2, 3],
theta = [
'processing cost',
'mechanical properties',
'chemical stability',
'thermal stability',
'device integration'
],
fill = 'toself'
)
data = [radar]
fig = go.Figure(data = data)
iplot(fig)
以下の出力は、上記のコードの結果です-