[英]Plotly: How do I make a contour plot without the area filled?
我想在 plotly 中制作由下面的代碼生成的相同的圖。 我更喜歡使用 plotly,但我無法創建正確的數據結構來輸入 plotly。
x = np.linspace(0.4,1.6,100)
y = np.linspace(0.4,1.6,100)
X, Y = np.meshgrid(x, y)
pos = np.dstack((X, Y))
C_1_means = np.array([1,1.375])
C_1_cov = np.array([[0.03,0.0167],[0.0167,0.0157]])
C_2_means = np.array([0.7,1.025])
C_2_cov = np.array([[0.008,0],[0,0.009]])
rv = multivariate_normal(C_1_means,C_1_cov)
Z_1 = rv.pdf(pos).tolist()
rv = multivariate_normal(C_2_means,C_2_cov)
Z_2 = rv.pdf(pos).tolist()
import matplotlib.pyplot as plt
plt.contour(X,Y,Z_1)
plt.contour(X,Y,Z_2)
plt.show()
我得到這個圖:
我在下面嘗試了以下代碼:
fig = go.Figure(data =
go.Contour(
z=Z_1,
x=X, # horizontal axis
y=Y # vertical axis
))
fig.show()
import numpy as np
import scipy.stats as stats
import plotly.graph_objects as go
x = np.linspace(0.4, 1.6, 100)
y = np.linspace(0.4, 1.6, 100)
X, Y = np.meshgrid(x, y)
pos = np.dstack((X, Y))
C_1_means = np.array([1, 1.375])
C_1_cov = np.array([[0.03, 0.0167], [0.0167, 0.0157]])
rv1 = stats.multivariate_normal(C_1_means, C_1_cov)
C_2_means = np.array([0.7, 1.025])
C_2_cov = np.array([[0.008, 0],[0, 0.009]])
rv2 = stats.multivariate_normal(C_2_means,C_2_cov)
Z_1 = rv1.pdf(pos).tolist()
Z_2 = rv2.pdf(pos).tolist()
data = []
data.append(go.Contour(z=Z_1,
x=x,
y=y,
contours_coloring='lines',
line_width=2,
showscale=False))
data.append(go.Contour(z=Z_2,
x=x,
y=y,
contours_coloring ='lines',
line_width=2,
showscale=False))
layout = dict(plot_bgcolor='white',
paper_bgcolor='white',
xaxis=dict(linecolor='gray', mirror=True),
yaxis=dict(linecolor='gray', mirror=True))
fig = go.Figure(data=data, layout=layout)
fig.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.