matplotlib中更漂亮的默认绘图颜色

时间:2013-04-04 14:51:31

标签: python matplotlib

matplotlib中使用的默认颜色(例如:http://matplotlib.org/examples/pylab_examples/pie_demo.html)有点简单和丑陋。我还注意到,如果你在一个图中绘制超过5-6个不同的系列,matplotlib就会开始重复颜色。

我已经看到一些华丽的图形来自其他可视化软件包(默认情况下使用其他语言),可以有5-6个不同的系列,只有一种颜色可以覆盖不同的颜色。有没有人有一个很好的颜色设置在matplotlib中使用?还有一种方法可以让matplotlib默认使用它吗?

8 个答案:

答案 0 :(得分:56)

您可以使用Matplotlib's style sheets。它已从mpltools library移植,其style模块重新定义了matplotlib rc参数。

例如,请参阅使用ggplot styleMatplotlib's manual

image

答案 1 :(得分:25)

看看prettyplotlib一个图书馆 - 最近刚刚由朋友向我指出 - 修改matplotlib以更好地与Edward Tufte的想法保持一致,以及一些经过仔细研究的作品关于色觉的Cynthia Brewer

答案 2 :(得分:25)

问题在2年前被问到,今天为你的情节获得更好的风格要容易得多。你甚至不需要外部包装。正如@asmaier在评论中提到的,mpltools.style功能已集成到Matplotlib 1.4中,因此您可以使用以下方式切换样式:

plt.style.use(style_name)

例如:

import matplotlib.pyplot as plt
import numpy as np

plt.style.use('ggplot')

num_lines = 6

ax = plt.subplot(111)

for i in range(num_lines):
    x = np.linspace(0,20,200)
    ax.plot(x,np.sin(x)+i)

plt.show()

enter image description here

您可以列出所有可用的样式:

print plt.style.available

在Matplotlib 1.5中添加了几种新样式,包括Seaborn项目中的许多样式:

plt.style.use('seaborn-dark-palette')

enter image description here

答案 3 :(得分:14)

Seaborn包(基于Matplotlib)具有很好的默认图形样式,我发现它是创建吸引人的颜色循环的好方法。

他们在这里对色块进行了很好的讨论: https://stanford.edu/~mwaskom/software/seaborn/tutorial/color_palettes.html

以下代码演示了如何为简单的线图自动选择新的color_cycle:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns   

num_lines = 6

ax = plt.subplot(111)
ax.set_color_cycle(sns.color_palette("coolwarm_r",num_lines))

for i in range(num_lines):
    x = np.linspace(0,20,200)
    ax.plot(x,np.sin(x)+i)

plt.show()

enter image description here

如果您只想更改线条颜色而不使用其他seaborn预设,例如灰色背景,只需使用

导入seaborn
import seaborn.apionly as sns

答案 4 :(得分:4)

您可以设置.matplotlibrc文件。一个真正评论很多的例子是here。在我看来,您想要更改的选项是axes.color_cycle。我没有任何关于如何使它成为更漂亮的界面的建议 - 这有点过于主观Stack Overflow ;-)(我对默认值感到满意)

答案 5 :(得分:1)

您可以使用matplotlib的colormap功能。

一个很好的例子是this问题。您可以显示色彩映射选项using this script

答案 6 :(得分:1)

对于可以与matplotlib一起使用的更丰富的颜色,请查看palettable,其中包含精彩的Wes Anderson托盘。

$ pip install palettable
$ python
>>> from palettable.colorbrewer.qualitative import Dark2_7

答案 7 :(得分:0)

我的作品使用 GetObject 样式您可以在此链接中查看其他样式列表 matplotlib.org

用法:

ggplot