58

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

我已经看到了一些来自其他可视化包(默认为其他语言)的华丽图表,它们可以有 5-6 个不同的系列,仅由一种颜色和不同的阴影覆盖。有没有人可以在 matplotlib 中使用好的颜色集?以及让 matplotlib 默认使用它的方法?

4

9 回答 9

66

您可以使用Matplotlib 的样式表。它是从mpltools 库中移植过来的,该库有一个重新定义 matplotlib rc 参数的样式模块。

作为示例,请参阅ggplot 样式的使用和Matplotlib 的手册

图片

于 2013-04-04T15:04:21.473 回答
43

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

在此处输入图像描述

于 2016-01-03T13:57:11.733 回答
25

看看prettyplotlib一个库——最近朋友们向我指出——它修改了 matplotlib 以更好地与Edward Tufte的想法保持一致,以及Cynthia Brewer对颜色感知的一些非常仔细研究的工作。

于 2013-10-25T14:00:22.497 回答
15

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()

在此处输入图像描述

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

import seaborn.apionly as sns
于 2015-10-05T14:03:45.233 回答
4

您可以设置一个.matplotlibrc文件。一个真正被大量评论的例子是here。在我看来,您要更改的选项是axes.color_cycle. 对于如何制作更漂亮的界面,我没有任何建议——这有点太主观了 Stack Overflow ;-)(我对默认设置很满意)

于 2013-04-04T14:57:08.913 回答
1

您可以使用 matplotlib 的颜色图功能。

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

于 2013-04-04T14:57:49.607 回答
1

如需更丰富的可与 一起使用的颜色matplotlib,请查看以美妙的Wes Anderson调色板为特色的调色板。

$ pip install palettable
$ python
>>> from palettable.colorbrewer.qualitative import Dark2_7
于 2017-05-26T09:21:10.303 回答
0

我为我的作品使用ggplot风格,您可以在此链接matplotlib.org中查看其他风格的列表

用法:

import matplotlib.pyplot as plt
plt.style.use('ggplot')
于 2021-08-11T07:00:12.763 回答
0

前段时间,我在 matplotx 中创建了dufte,这是 matplotlib 的简约风格。安装

pip install matplotx

并与

plt.style.use(matplotx.styles.dufte)

在此处输入图像描述

于 2021-12-01T10:13:26.387 回答