如何隐藏Plotly Surface图中的colorbar?已尝试多法仍未解决
隐藏Plotly Surface图的Colorbar
问题描述
无法找到隐藏Plotly Surface图中colorbar的方法,使用的代码如下:
import plotly.graph_objs as go import numpy as np x = np.linspace(0, 9, 10) y = x z = np.linspace(0, 99, 100).reshape((10, 10)) fig = go.Figure() fig.add_trace( go.Surface( x=x, y=y, z=z ) ) fig.update_layout( scene=dict( xaxis_title='x', yaxis_title='y', zaxis_title='z' ) ) fig.show()
已尝试以下方法但无效:
fig.update_coloraxes(showscale=False)fig.update_layout(coloraxis_showscale=False)- 在Surface中设置
colorscale=None, colorbar=None, coloraxis=None
解决思路
Plotly Surface的colorbar是trace级别的配置,而非全局coloraxis设置,所以之前的方法不生效。正确的做法是直接控制trace的showscale参数:
方法1:添加trace时直接设置
在go.Surface中加入showscale=False:
import plotly.graph_objs as go import numpy as np x = np.linspace(0, 9, 10) y = x z = np.linspace(0, 99, 100).reshape((10, 10)) fig = go.Figure() fig.add_trace( go.Surface( x=x, y=y, z=z, showscale=False # 关键参数 ) ) fig.update_layout( scene=dict( xaxis_title='x', yaxis_title='y', zaxis_title='z' ) ) fig.show()
方法2:更新已有trace
如果已经创建了fig,可以用update_traces批量修改所有Surface trace的showscale属性:
fig.update_traces(showscale=False) fig.show()
补充说明
showscale参数专门控制是否显示当前trace对应的colorbar,针对Surface这类自带colorbar的trace直接生效。- 之前尝试的
colorbar=None不会生效,因为colorbar是一个对象配置,需要设置colorbar.visible=False或者直接用showscale=False更简洁。
内容的提问来源于stack exchange,提问作者basil_man
相关产品推荐
相关产品推荐

