首页 > 解决方案 > Python 3d 绘图集固定色标

问题描述

我正在尝试绘制两个 3d 数组:第一个具有 (z) 值在 range[-0.15, 0.15]中,第二个来自[-0.001, 0.001]. 当我绘图时,色阶会自动跟随数据范围:如何设置自定义比例?我不想看到 0.001 的浅色,而是应该看到 0.15。我怎样才能修复规模?

我分享下面的部分代码:

import numpy as np 
import matplotlib.pyplot as plt 
import plotly.graph_objects as go


data1=np.load("test.npy")
fig = go.Figure(data=[go.Surface(z=data1,colorscale="viridis")])


fig.update_layout(margin = dict(t=100,r=100,b=100,l=100),
    scene = dict(zaxis = dict(range=[-0.15,0.15],)),
    showlegend = False,
    width = 1000, height = 1000,
    autosize = False )
fig.update_layout(scene = dict(
                    xaxis_title='x',
                    yaxis_title='y',
                    zaxis_title='z'))
fig.write_image("image.pdf")
fig.show()

标签: pythonmatplotlibplotly

解决方案


我只是查看了 plotly API 参考,Surface需要什么样的参数。我看到cmincmaxcmix。您可以设置这些来告诉 Surface 您的色标的最小值、最大值和中点应该在哪里。在您的情况下,只需将 cmin 和 cmax 设置为适合您的用例的值:

go.Surface(z=data1, colorscale="viridis", cmin=-0.15, cmax=0.15)例如


推荐阅读