[英]Plotly: How to increase the number of colors to assure unique colors for all lines?
我想 plot 一条简单的线 plot 但如果我有超过 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()
您可以使用关键字colors
像df.plot(colors=my_list)
传递 colors 的列表。
如果您的列表中的 colors 与您的 DataFrame 列一样多,则不会重复 colors。
这是一个例子:
import pandas as pd
import numpy as np
import colorcet as cc
pd.set_option("plotting.backend", "matplotlib")
df=pd.DataFrame(np.random.rand(100, 12)).cumsum()
df.plot(color=cc.b_rainbow_bgyrm_35_85_c71[::15][:df.shape[0]])
Output
实际上它记录在这里https://plotly.com/python/discrete-color/ 。 您正在使用plotly express的接口
下面的代码使用一组不同的 colors。
import pandas as pd
import numpy as np
pd.set_option("plotting.backend", "plotly")
df=pd.DataFrame(np.random.rand(100, 12)).cumsum()
color_seq = ['#AA0DFE',
'#3283FE',
'#85660D',
'#782AB6',
'#565656',
'#1C8356',
'#16FF32',
'#F7E1A0',
'#E2E2E2',
'#1CBE4F',
'#C4451C',
'#DEA0FD',
'#FE00FA',
'#325A9B',
'#FEAF16',
'#F8A19F',
'#90AD1C',
'#F6222E',
'#1CFFCE',
'#2ED9FF',
'#B10DA1',
'#C075A6',
'#FC1CBF',
'#B00068',
'#FBE426',
'#FA0087']
df.plot(color_discrete_sequence=color_seq)
如果您想针对任意数量的轨迹动态执行此操作,您可以使用px.colors.sample_colorscale()
对连续的 plotly 色标进行采样,如下所示:
colors = px.colors.sample_colorscale("viridis", [n/(n_colors -1) for n in range(n_colors)])
df.plot(color_discrete_sequence=colors)
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.