一. Plotly默认渐变配色

新学Python的小伙伴第一次看《Python编程:从入门到实践》第16章16.2.10“其他渐变”的时候,肯定会感到疑惑。因为书中只写了如何查找可供使用的渐变配色,并没有给出在代码中具体的使用方式。

按照书中的代码,生成的默认渐变配色图如下所示:

二. 使用plotly.express自带的渐变配色

通过查阅Plotly官网https://plotly.com/python/colorscales/即可了解如何修改渐变色。修改的方法主要有以下几个。

1. 添加color_continuous_scale

在.scatter()函数中加入“color_continuous_scale”,这里假设使用配色“Jet”:

fig = px.scatter(
    --snip--
    color_continuous_scale = px.colors.sequential.Jet
)

“px.colors.sequential”表示连续的渐变色,“Jet”是Plotly自带的配色主题,想要查找还有哪些其它官方配色,可以在Plotly官网https://plotly.com/python/builtin-colorscales/上选择自己喜欢的配色。

也可以在形参后直接接配色名称的字符串:

fig = px.scatter(
    --snip--
    color_continuous_scale = 'Jet'
)

更改配色后的图像如下所示:

请注意,如果函数实参中包含“data”,“color_continuous_scale”必须放在“data”后面才能成功生成图像,否则会报错。

2. 反转渐变配色

如果想反转渐变配色,直接在配色名称后加上“_r”即可:

fig = px.scatter(
    --snip--
    color_continuous_scale = px.colors.sequential.Jet_r
)

#或者

fig = px.scatter(
    --snip--
    color_continuous_scale = color_continuous_scale = 'Jet_r'
)

生成的图像如下所示:

三. 自定义配色

1. 均匀渐变

如果想自己指定颜色进行渐变,并且这几种颜色所占的间距相等,就可以直接把颜色分别列在“color_continuous_scale”后面:

fig = px.scatter(
    --snip--
    color_continuous_scale = ['green', 'yellow', 'red']
)

 

2. 不均匀渐变

Plotly也支持自定义特定的色阶点。可以把整个渐变色条看成是0到1的区间,如果我想在0.2处就提前变成黄色,可以像这样写代码:

fig = px.scatter(
    --snip--
    color_continuous_scale = [(0, 'green'), (0.2, 'yellow'), (1, 'red')]
)

 

3. 设置颜色范围

当使用输入数据的范围作为颜色范围不合适时,例如因为某些极端异常值要裁剪颜色范围,可以使用plotly.express参数“range_color”。例如在.scatter()中添加如下代码:

fig = px.scatter(
    --snip--
    color_continuous_scale = [(0, 'green'), (0.2, 'yellow'), (1, 'red')]
    range_color = [4,6]
)

从图像中可以看到,震级在4及4以下的都被设置为了深绿色,震级在6及6以上的都为红色。

4. 隐藏颜色轴

如果不想在右侧显示颜色轴,则在程序中加上如下代码即可:

fig = px.scatter(
    --snip--
    color_continuous_scale = [(0, 'green'), (0.2, 'yellow'), (1, 'red')]
    range_color = [4,6]
)

fig.update_layout(coloraxis_showscale = False)

 

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐