![](/img/trans.png)
[英]Plotly: How to extend the colorscheme of a plotly express scatterplot?
[英]Plotly: How to change the colorscheme of a plotly express scatterplot?
我正在尝试使用plotly
,特别是ploty express
来构建一些可视化。
我正在构建的一件事是散点图
我在下面有一些代码,它产生了一个很好的散点图:
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表达。 只需运行dir(px.colors.qualitative)
以查看您正在运行的 plotly 版本中可用的内容:
['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()
情节 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, ...]
这让我们回到了我对分类值的最初答案:
使用关键字参数
continuous_colorscale
与组合px.colors.qualitative
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.