【问题标题】:Plotly: How to change the colour scheme of a 3D surface plot?Plotly:如何更改 3D 曲面图的配色方案?
【发布时间】:2021-05-08 16:58:42
【问题描述】:

我想在 plotly python 中更改 3D 曲面图的配色方案。 Plotly 默认分配配色方案,如下图所示。

这是我的代码

import import plotly.graph_objects as go
import pandas as pd

data = pd.read_csv('\Data.csv')
data.set_index("years", inplace = True)
figure = go.Figure(data=[go.Surface(z=data.values)])
figure.update_layout(
            scene = dict(
                xaxis = dict(
                    title = 'Months',
                    #nticks = 5,
                    autorange='reversed',
                    showgrid=True, 
                    gridwidth=1, 
                    gridcolor='Blue',
                    ticktext = data.columns,
                    tickvals= list(range(0,data.shape[1]))),
                
                    
                yaxis = dict(
                    title = 'years',
                    showgrid=True, 
                    gridwidth=1, 
                    gridcolor='Blue',
                    ticktext = data.index,
                    tickvals= list(range(0,data.shape[0]))),
              
                zaxis = dict(
                    title = 'Discharge (Cumecs)',
                    #showgrid=True, 
                    gridwidth=1,
                    gridcolor='Blue')),
           tilte = 'Plot 1'
)

【问题讨论】:

标签: python plotly plotly-python


【解决方案1】:

您可以通过colorscale in 轻松更改配色方案

go.Surface(colorscale ='<color>')

这是一个使用colorscale='Blues的示例:

fig = go.Figure(data=[go.Surface(z=z_data.values, colorscale ='Blues')])

情节

您的色阶选项是(但不一定限于):

Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis。

示例代码:

import plotly.graph_objects as go

import pandas as pd

# Read data from a csv
z_data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/api_docs/mt_bruno_elevation.csv')

fig = go.Figure(data=[go.Surface(z=z_data.values, colorscale ='Blues')])

fig.update_layout(title='Mt Bruno Elevation', autosize=False,
                  width=500, height=500,
                  margin=dict(l=65, r=50, b=65, t=90))
f = fig.full_figure_for_development(warn=False)


fig.show()

【讨论】:

  • 非常感谢...作为一个新手,我错过了很多简单的事情...
  • @AsifMarazi 新手与否,以我的拙见,您在 SO 上的开端非常。您问了一个问题,该问题没有一个很容易用谷歌搜索(虽然不确定这是否是一个词=)答案,并且您提供了一个几乎可重现的代码 sn-p。这比我们在这里的大多数新手看到的要多。但更重要的是,您通过评论和接受建议的解决方案提供快速反馈,证明了您的问题的答案对您的价值高于零。继续努力,您将在这里学到很多。回头见!
  • 抱歉,回复延迟...我目前非常热衷于学习编程,当然需要您的帮助...感谢您的赞赏...
猜你喜欢
  • 1970-01-01
  • 2016-09-28
  • 2017-02-08
  • 2018-05-06
  • 1970-01-01
  • 2021-12-06
  • 2017-10-31
  • 2018-11-07
  • 2018-12-30
相关资源
最近更新 更多