一般来说,更改情节表达图形的配色方案非常简单。造成这里问题的原因是species
is a 分类变量。连续值或数值实际上更容易,但我们稍后会讨论这一点。
对于分类值,使用color_discrete_map
这是一个完全有效的方法,尽管很麻烦。我更喜欢使用关键字参数continuous_colorscale
结合px.colors.qualitative.Antique
, where Antique
可以更改为任何离散配色方案 https://plotly.com/python/discrete-color/#color-sequences-in-plotly-express可在情节表达中使用。赶紧跑dir(px.colors.qualitative)
查看您正在运行的绘图版本中可用的内容:
['Alphabet',
'Antique',
'Bold',
'D3',
'Dark2',
'Dark24',
'G10',......]
Code 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()
Plot 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
会给你这个情节:
该图现在直接跳回到使用默认的绘图颜色,without向您发出任何警告color_continuous_scale=px.colors.sequential.Inferno
没有效果。
这是因为species
是具有这些不同值的分类变量:['setosa', 'versicolor', 'virginica']
, so color_continuous_scale
被简单地忽略了。为了color_continuous_scale
要生效,您必须使用数值,例如sepal_length = [5.1, 4.9, 4.7, 4.6, 5. , 5.4, ...]
这让我们回到了我对分类值的最初答案:
使用关键字参数continuous_colorscale
结合px.colors.qualitative