Plotly - 分佈圖、密度圖和誤差條形圖



本章我們將詳細瞭解分佈圖、密度圖和誤差條形圖。讓我們從學習分佈圖開始。

分佈圖 (Distplots)

分佈圖圖形工廠顯示數值資料的統計表示組合,例如直方圖、核密度估計或正態曲線以及毛毯圖。

分佈圖可以由以下 3 個元件中的全部或任何組合組成:

  • 直方圖
  • 曲線:(a)核密度估計或(b)正態曲線,以及
  • 毛毯圖 (rug plot)

figure_factory 模組具有create_distplot() 函式,該函式需要一個名為 hist_data 的必填引數。

以下程式碼建立一個包含直方圖、kde 圖和毛毯圖的基本分佈圖。

x = np.random.randn(1000)
hist_data = [x]
group_labels = ['distplot']
fig = ff.create_distplot(hist_data, group_labels)
iplot(fig)

上面提到的程式碼的輸出如下:

Distplots

密度圖

密度圖是根據資料估計的直方圖的平滑連續版本。最常見的估計形式稱為核密度估計 (KDE)。在這種方法中,在每個單獨的資料點處繪製一條連續曲線(核),然後將所有這些曲線加在一起以建立一個平滑的密度估計。

plotly.figure_factory._2d_density 模組中的create_2d_density() 函式返回二維密度圖的圖形物件。

以下程式碼用於生成直方圖資料上的二維密度圖。

t = np.linspace(-1, 1.2, 2000)
x = (t**3) + (0.3 * np.random.randn(2000))
y = (t**6) + (0.3 * np.random.randn(2000))
fig = ff.create_2d_density( x, y)
iplot(fig)

以下是上面給定程式碼的輸出。

Density Plot

誤差條形圖

誤差條是資料誤差或不確定性的圖形表示,它們有助於正確解釋。出於科學目的,錯誤報告對於理解給定資料至關重要。

誤差條對問題解決者很有用,因為誤差條顯示了一組測量值或計算值的置信度或精度。

誤差條主要表示資料集的範圍和標準差。它們可以幫助視覺化資料圍繞平均值的分佈情況。誤差條可以在各種圖上生成,例如條形圖、線圖、散點圖等。

go.Scatter() 函式具有error_xerror_y 屬性,這些屬性控制誤差條的生成方式。

  • visible (布林值) - 確定這組誤差條是否可見。

Type 屬性的可能值為“percent” | “constant” | “sqrt” | “data”。它設定用於生成誤差條的規則。如果為“percent”,則條形長度對應於基礎資料的百分比。在此百分比中設定`value`。如果為“sqrt”,則條形長度對應於基礎資料的平方。如果為“data”,則條形長度使用資料集`array`設定。

  • symmetric 屬性可以為 true 或 false。相應地,誤差條的長度在兩個方向上相同或不同(垂直條的頂部/底部,水平條的左側/右側)。

  • array - 設定與每個誤差條長度相對應的資料。值相對於基礎資料繪製。

  • arrayminus - 設定與垂直(水平)條的底部(左側)方向的每個誤差條長度相對應的資料。值相對於基礎資料繪製。

以下程式碼在散點圖上顯示對稱誤差條:

trace = go.Scatter(
   x = [0, 1, 2], y = [6, 10, 2],
   error_y = dict(
   type = 'data', # value of error bar given in data coordinates
   array = [1, 2, 3], visible = True)
)
data = [trace]
layout = go.Layout(title = 'Symmetric Error Bar')
fig = go.Figure(data = data, layout = layout)
iplot(fig)

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

Error Bar Plot

透過以下指令碼渲染非對稱誤差圖:

trace = go.Scatter(
   x = [1, 2, 3, 4], 
   y =[ 2, 1, 3, 4],
   error_y = dict(
      type = 'data',
      symmetric = False,
      array = [0.1, 0.2, 0.1, 0.1], 
      arrayminus = [0.2, 0.4, 1, 0.2]
   )
)
data = [trace]
layout = go.Layout(title = 'Asymmetric Error Bar')
fig = go.Figure(data = data, layout = layout)
iplot(fig)

其輸出如下所示:

Asymmeric Error Bar
廣告