使用 Plotly 在 Python 中繪製等值線圖


在 Python 中,Plotly被稱為“plotly.py”。它是一個免費的開源繪相簿,構建在“plotly.js”之上。它支援超過 40 種獨特的圖表型別。該庫主要用於金融、地理、科學、三維和資料分析應用。

它可用於繪製各種型別的圖表和圖形,如散點圖、折線圖、條形圖、箱線圖、直方圖、餅圖、面積圖、箱線圖、直方圖、熱力圖、子圖、多軸等。

安裝 plotly

在命令提示符中執行以下命令以安裝 plotly 模組。這是一種從 PyPi 安裝Plotly最新軟體包的簡單方法。

pip install plotly

等值線圖用於透過繪製稱為等值線的恆定 z 切片來視覺化二維表面上的三維資料。

它藉助等值線函式 (Z) 繪製,該函式是兩個輸入 X 和 Y(X 軸和 Y 軸座標)的函式。

Z = fun(x,y)

ploty 模組提供了一個名為 Contour 的函式,用於繪製等值線圖。

contour() 函式

plotly.graph_objects 提供了一個名為 contour() 的方法來繪製等值線圖。該函式具有 50 多個引數,這裡我們只討論幾個引數。

語法

plotly.graph_objects.Contour(z=None,x=None,y=None,arg=None,colorbar=None,hoverinfo=None,x=None,y=Non,**kwargs)

引數

  • z:預設為 None,用於計算等值線(z 資料)的二維值列表。

  • x:x 座標,預設為 None。

  • y:y 座標,預設為 None。

使用二維陣列作為 z 函式的等值線圖

使用二維陣列作為 z 函式繪製等值線圖。

示例

在本例中,我們將使用二維陣列繪製一個簡單的等值線圖。

import plotly.graph_objects as go
fig = go.Figure(data = go.Contour(z=[[4.3, 0.2],
   [-1.3, 0.9],
   [-0.32, 7.3],
   [4.6, 0.203]]))
fig.show()

輸出

這裡 4X2 陣列表示 z 函式。

帶有 X 和 Y 座標的等值線圖

使用 X 和 Y 座標以及 z 函式(二維陣列)繪製等值線圖。

示例

在本例中,我們將使用二維陣列以及 X 和 Y 座標繪製等值線圖。

import plotly.graph_objects as go

fig = go.Figure(data = go.Contour(z=[[4.3, 9, 0.2],
   [-1.3, 2.3, 0.9],
   [-0.32, 7.3, 0.23],
   [4.6, 0.203, 0.34]],
   x=[-8, -3, -2,-1, 0.23], # horizontal axis 
   y=[0, 2, 5, 7, 3]# vertical axis
   ))
fig.show()

輸出

這裡 x 和 y 座標分別表示水平軸和垂直軸。

使用 Numpy 繪製等值線圖

使用 numpy 繪製等值線圖,這裡我們將使用 numpy.meshgrid() 函式生成 X 和 Y 座標的陣列。

示例

z 函式將是使用 numpy.sqrt() 函式計算 x 和 y 值的平方根之和。

import numpy as np
import plotly.graph_objects as go

xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)

# create a mesh
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)

trace = go.Contour(x = xlist, y = ylist, z = Z)
data = [trace]
fig = go.Figure(data)
fig.show()

輸出

帶有顏色比例尺的等值線圖

顏色比例尺是 plotly.graph_objects.Contour() 函式的一個引數,用於設定顏色比例尺。

示例

讓我們舉一個例子,並將調色盤名稱字串“Earth”設定為顏色比例尺引數。

import plotly.graph_objects as go
import numpy as np

def f(x, y):
    return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)

xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)

# A mesh is created with the given co-ordinates by this numpy function
X, Y = np.meshgrid(xlist, ylist)
Z = f(X,Y)

fig = go.Figure(go.Contour(x = xlist, y = ylist, z = Z, colorscale='Earth'))
fig.show()

輸出

我們已經使用不同的 z 函式繪製了等值線圖。

更新於: 2023年5月30日

389 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告