繁体   English   中英

更改matplotlib样式表中的颜色数

[英]change the number of colors in matplotlib stylesheets

我正在使用matplotlib绘制几个图表用于出版物,我需要所有都具有相同的样式。 有些图表有超过6个类别,我注意到,默认情况下,它不会绘制超过6种不同的颜色。 7或更多,我开始有重复的颜色。

例如

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.style.use('seaborn-muted')

df2= pd.DataFrame(np.random.rand(10,8))
df2.plot(kind='bar',stacked=True)
plt.legend(fontsize=13,loc=1)
plt.show()

可能有一种认知原因不包括超过6种不同的颜色,但如果我需要,我该怎么办呢? 我尝试过不同的样式表(seaborn,ggplot,classic),但似乎都有相同的“限制”。

我需要更改色彩图/样式表吗? 理想情况下,我想使用定性颜色图(我正在绘制的类别中没有顺序)并使用预先存在的颜色图...我不是很好选择颜色。

谢谢!

默认情况下,matplotlib将循环显示一系列六种颜色。 如果要更改默认颜色(或颜色数),可以使用cycler器循环显示所需的颜色而不是默认颜色。

from cycler import cycler

% Change the default cycle colors to be red, green, blue, and yellow
plt.rc('axes', prop_cycle=(cycler('color', ['r', 'g', 'b', 'y']))

在这里演示

更好的方法是只在您创建手动指定颜色情节plot所以,不是每一个你做的情节必须使用相同的颜色。

plt.plot([1,2,3], 'r')
plt.plot([4,5,6], 'g')
plt.plot([7,8,9], 'b')
plt.plot([10,11,12], 'y')

或者您可以在创建后更改颜色

h = plt.plot([1,2,3])
h.set_color('r')
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

colors = plt.cm.jet(np.linspace(0, 1, 10))

df2= pd.DataFrame(np.random.rand(10,8))
df2.plot(kind='bar',color=colors, stacked=True)
plt.legend(fontsize=13,loc=1)

这基本上是在matplotlib中使用更多颜色的Plotting复制的。 检查色彩映射文档及其示例页面

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM