我正在尝试使用 plotly
,特别是 ploty express
来构建一些可视化对象。
我正在建立的一件事是scatterplot
我下面有一些代码,它产生一个漂亮的散点图:
import plotly.graph_objs as go, pandas as pd, plotly.express as px
df = pd.read_csv('iris.csv')
fig = px.scatter(df, x='sepal_length', y='sepal_width',
color='species', marker_colorscale=px.colors.sequential.Viridis)
fig.show()
但是,我想尝试更改颜色方案,即为每个物种显示的颜色。
我读过了:
但是无法获得改变的颜色。
试:
fig = px.scatter(df, x='sepal_length', y='sepal_width',
color='species', marker_colorscale=px.colors.sequential.Viridis)
产量:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-78a9d58dce23> in <module>
2 # https://plotly.com/python/line-and-scatter/
3 fig = px.scatter(df, x='sepal_length', y='sepal_width',
----> 4 color='species', marker_colorscale=px.colors.sequential.Viridis)
5 fig.show()
TypeError: scatter() got an unexpected keyword argument 'marker_colorscale'
试
试:
fig = px.scatter(df, x='sepal_length', y='sepal_width',
color='species', continuous_colorscale=px.colors.sequential.Viridis)
产量:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-78a9d58dce23> in <module>
2 # https://plotly.com/python/line-and-scatter/
3 fig = px.scatter(df, x='sepal_length', y='sepal_width',
----> 4 color='species', continuous_colorscale=px.colors.sequential.Viridis)
5 fig.show()
TypeError: scatter() got an unexpected keyword argument 'continuous_colorscale'
如何更改
plotly
可视化中使用的颜色?
最佳答案
通常,更改用于绘图的图形的配色方案非常简单。在这里导致问题的原因是species
是分类变量。连续值或数字值实际上更容易些,但我们稍后将进行介绍。
对于分类值,使用color_discrete_map
是一种完全有效的方法,尽管很麻烦。我更喜欢将关键字参数continuous_colorscale
与px.colors.qualitative.Antique
结合使用,其中Antique
可以更改为可在plotly express中使用的任何discrete color schemes。只需运行dir(px.colors.qualitative)
即可查看正在运行的可打印版本中可以使用的功能:
['Alphabet',
'Antique',
'Bold',
'D3',
'Dark2',
'Dark24',
'G10',......]
代码1:
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length",
color="species", color_discrete_sequence=px.colors.qualitative.Antique)
fig.show()
plotly 1:
那么连续变量呢?
考虑以下代码段:
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length",
color="sepal_length", color_continuous_scale=px.colors.sequential.Viridis)
fig.show()
运行此将生成以下图:
您可以将颜色更改为
dir(px.colors.sequential)
下可用的任何其他主题,例如color_continuous_scale=px.colors.sequential.Inferno
,并获得以下图表:在这里可能引起困惑的是,设置
color='species
并保留color_continuous_scale=px.colors.sequential.Inferno
将为您提供以下图表:现在,该图直接跳回使用默认的绘图颜色,而没有,这给您有关
color_continuous_scale=px.colors.sequential.Inferno
无效的任何警告。这是因为
species
是具有以下不同值的类别变量:['setosa', 'versicolor', 'virginica']
,因此color_continuous_scale
会被忽略。为了使color_continuous_scale
生效,您必须使用一个数值,例如sepal_length = [5.1, 4.9, 4.7, 4.6, 5. , 5.4, ...]
这使我们回到关于分类值的最初答案:
Use the keyword argument
continuous_colorscale
in combination withpx.colors.qualitative
关于python - Plotly:如何更改散点图散点图的配色方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60962274/