[英]How to combine a heatmap and contour plot with Plotly Python
我有两个不同的图,一个热图和一个等高线图,我想将等高线放在热图的顶部。 每个图的 z 值对应于不同的数量。
import plotly.graph_objects as go
fig1=go.Figure(go.Heatmap(
x=data.X,
y=data.Y,
z=data0.Z1, zsmooth='best',
colorscale='Viridis'
), layout=layout)
fig2=go.Figure(go.Contour(
x=data.X,
y=data.Y,
z=round(data.Z2,3),
zmin=0,
zmax=0.3,
contours_coloring='lines',
line_width=2,
colorscale=[[0,'blue'],[0.5,'black'],[1,'red']],
contours=dict(
start=0, end=0.01, size=1)
), layout=layout)
在 Altair 中,我可以只使用fig1 + fig2
但这不适用于 Plotly。 不幸的是,Altair 没有任何轮廓功能。 如果 Plotly 无法做到这一点,是否可以使用 matplotlib 来实现?
编辑:这是一个数据示例
ls = [[-0.1,-3.0,-0.5,0.0],[-0.1,-2.0,-0.25,0.2],[-0.1,-1.0,-0.15,0.25],[-0.1,0.0,0,0.3],[-0.1,1.0,0.1,0.25],[-0.1,2.0,0.25,0.2],[-0.1,3.0,0.5,0.0],[0.0,-3.0,-0.5,0.0],[0.0,-2.0,-0.25,0.1],[0.0,-1.0,-0.15,0.11],[0.0,0.0,0.0,0.1],[0.0,1.0,0.1,0.0],[0.0,2.0,0.25,0.0],[0.0,3.0,0.5,0.0],[0.1,-3.0,-0.5,0.0],[0.1,-2.0,-0.5,0.12],[0.1,-1.0,-0.15,0.12],[0.1,0.0,0.0,0.13],[0.1,1.0,0.1,0.12],[0.1,2.0,0.5,0.12],[0.1,3.0,0.5,0.0]]
data = pd.DataFrame(ls, columns=['X', 'Y', 'Z1', 'Z2'])
鉴于您的示例,要将轮廓放在热图顶部,您需要执行以下操作:
fig1.add_trace(fig2.data[0])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.