python导入matplotlib - 莫烦python matplotlib




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

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

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


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

他们在这里讨论了色板: https://stanford.edu/~mwaskom/software/seaborn/tutorial/color_palettes.html ://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()

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

import seaborn.apionly as sns

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

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

您可以使用matplotlib的colormap功能。

this问题就是一个很好的例子。 您可以使用此脚本显示colormap选项。


您可以设置.matplotlibrc文件。 这里有一个非常有说服力的例子。 在我看来,你想要改变的选项是axes.color_cycle 。 我没有任何关于如何使它成为更漂亮的界面的建议 - 这有点过于主观 ;-)(我对默认值感到满意)


这个问题是在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()

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

print plt.style.available

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

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





matplotlib