Plotly - 極座標圖和雷達圖



在本章中,我們將學習如何使用 Plotly 繪製極座標圖和雷達圖。

首先,讓我們學習一下極座標圖。

極座標圖

極座標圖是圓形圖的一種常見變體。當資料點之間的關係最容易以半徑和角度表示時,它非常有用。

在極座標圖中,一個序列由連線極座標系中點的閉合曲線表示。每個資料點由到極點的距離(徑向座標)和從固定方向的角度(角座標)確定。

極座標圖沿徑向和角軸表示資料。徑向和角座標分別使用go.Scatterpolar()函式的rtheta引數給出。theta 資料可以是分類的,但數值資料也是可能的,並且是最常用的。

以下程式碼生成一個基本的極座標圖。除了 r 和 theta 引數外,我們將 mode 設定為lines(它也可以設定為 markers,在這種情況下,只會顯示資料點)。

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)

輸出如下:

Polar Chart

在下面的示例中,使用逗號分隔值 (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)

以下是上述程式碼的輸出:

Generate Polar Chart

雷達圖

雷達圖(也稱為蜘蛛圖星形圖)以二維圖的形式顯示多元資料,該圖的定量變量表示在從中心發出的軸上。軸的相對位置和角度通常沒有資訊量。

對於雷達圖,通常情況下,在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)

下面提到的輸出是上面給出的程式碼的結果:

Radar Chart
廣告
© . All rights reserved.