繁体   English   中英

如何使用 plotly 将轮廓颜色更改为白色外部轮廓范围?

[英]How to change contour color to white outside contour range using plotly?

我在下面使用 plot 轮廓,如果值在 z_min 以下的轮廓范围之外,我想将颜色设置为白色(未显示)。 对于我的 plot,z_min 以下的所有内容仍然是与 zmin 相同的蓝色。 在设置 start=, end= inside contour=dict() 后,我看到它在下面的网站示例中工作。 谢谢你的帮助。

https://plotly.com/python/contour-plots/

fig.add_trace(go.Contour(
                            # last column, either pressure or temperature
                            z = Z.T,
                            x = X[:,0], 
                            y = Y[0], 
                            colorscale='Jet',
                            contours=dict(
                                    start=z_min,
                                    end=z_max,
                                    size=25,
                                    coloring="heatmap"),
                            zmin=z_min,
                            zmax=z_max
    
                          )
                              )

目前我想不出任何直接的方法来使轮廓变白。

一种可能的解决方案是在将数组传递给go.Contour中的参数z之前,用np.nan数组中轮廓范围之外的任何值。

然后数组中的 NaN 值将不会呈现并且会显示为透明,这意味着可以看到刻度线和背景。 然后您可以将纸张和 plot 背景设置为白色,以便 NaN 值显示为白色。

这是一个如何实现的示例。 您要绘制的数组的尺寸越大,轮廓就越平滑。 在这个101 x 101的阵列中,从轮廓到白色背景的变化并不完美,但相当平滑。

import numpy as np
import plotly.graph_objects as go

x = np.linspace(0, 5, 101)
y = np.linspace(0, 5, 101)
xx, yy = np.meshgrid(x, y)
zz = (xx**2 + yy**2)

z_min, z_max = 10,50
zz_array_masked = zz.copy()
zz_array_masked[zz_array_masked < z_min] = np.nan

fig = go.Figure(data =
    go.Contour(
        z=zz_array_masked,
        colorscale='Jet',
        contours=dict(
            start=z_min,
            end=z_max,
            size=1,
        ),
        zmin=z_min,
        zmax=z_max
    ))

fig.update_layout(
    paper_bgcolor='rgba(0,0,0,0)',
    plot_bgcolor='rgba(0,0,0,0)'
)

fig.show()

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM