python-matplotlib中更漂亮的默认绘图颜色
matplotlib中使用的默认颜色(例如此处的示例:[http://matplotlib.org/examples/pylab_examples/pie_demo.html)]有点普通和难看。 我还注意到,如果您在一个图中绘制了5-6个以上的不同序列,则matplotlib将开始重复颜色。
我已经看到其他可视化软件包(默认情况下为其他语言)中的一些精美图形,这些图形可以具有5-6个不同的系列,而这些系列仅用一种颜色以不同的阴影覆盖。 是否有人在matplotlib中使用了良好的颜色设置? 还有一种使matplotlib在默认情况下使用它的方法?
7个解决方案
56 votes
您可以使用Matplotlib的样式表。 它已从mpltools库中移植,该库具有重新定义matplotlib rc参数的样式模块。
作为示例,请参见ggplot样式的使用和Matplotlib的手册。
gcalmettes answered 2020-07-03T03:07:42Z
28 votes
这个问题是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')
wombatonfire answered 2020-07-03T03:08:15Z
25 votes
看一下prettyplotlib一个库(最近由朋友向我指出了),该库对matplotlib进行了修改,使其更符合Edward Tufte的想法,以及辛西娅·布鲁尔(Cynthia Brewer)关于颜色感知的一些非常认真研究的工作。
Marcus P S answered 2020-07-03T03:08:36Z
14 votes
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.apionly as sns
DanHickstein answered 2020-07-03T03:09:09Z
4 votes
您可以设置.matplotlibrc文件。 这里有一个非常受好评的例子。 在我看来,您想要更改的选项是axes.color_cycle。对于更漂亮的界面该怎么做我没有任何建议-这有点太主观了;但是() 默认值)
mgilson answered 2020-07-03T03:09:30Z
1 votes
您可以使用matplotlib的颜色图功能。
这个问题就是一个很好的例子。 您可以使用此脚本显示颜色图选项。
StuGrey answered 2020-07-03T03:09:54Z
1 votes
若需要matplotlib可以使用的更丰富的颜色,请查看可调色盘,其中包括精美的Wes Anderson托盘。
$ pip install palettable
$ python
>>> from palettable.colorbrewer.qualitative import Dark2_7
christopherlovell answered 2020-07-03T03:10:14Z