Plotly:如何增加颜色数量以确保所有线条的颜色唯一?

PJP*_*PJP 4 python plot colors plotly plotly-python

我想绘制一个简单的线图,但如果我有超过 10 个变量,plolty 使用相同的颜色两次,我如何避免它并始终为新变量使用新颜色?

import pandas as pd
import numpy as np
pd.set_option("plotting.backend", "plotly")

df=pd.DataFrame(np.random.rand(100, 12)).cumsum()
df.plot()
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

ves*_*and 5

如果您想对任意数量的迹线动态执行此操作,您可以使用如下方式对连续的绘图色阶进行采样:px.colors.sample_colorscale()

colors = px.colors.sample_colorscale("viridis", [n/(n_colors -1) for n in range(n_colors)])
df.plot(color_discrete_sequence=colors)
Run Code Online (Sandbox Code Playgroud)

图 1 - 12 条迹线

在此输入图像描述

图 2 - 50 条迹线

在此输入图像描述

完整代码:

import pandas as pd
import numpy as np
import plotly.express as px
pd.set_option("plotting.backend", "plotly")

# data
df=pd.DataFrame(np.random.uniform(low=-2, high=2, size=(100,12))).cumsum()

# colors
n_colors = len(df.columns)
colors = px.colors.sample_colorscale("viridis", [n/(n_colors -1) for n in range(n_colors)])

# plot
df.plot(color_discrete_sequence=colors)
Run Code Online (Sandbox Code Playgroud)