matplotlib功能强大,可以定制各种绘图要素,以满足个性化的绘图需求,而更换绘图风格也十分便捷,一个matplotlib.style.use函数轻松搞定,而可用的绘图风格,可调用matplotlib.style.available列表得到,共有如下风格
下面将这些风格一一展示,考虑到这些绘图风格其实只是更改部分绘图参数,所以在更改风格之前,需要先恢复为默认绘图风格,绘图代码如下
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
def draw(style=None):
matplotlib.style.use('default')
matplotlib.style.use(style)
xs = np.linspace(-5,5,100)
yL = xs/5
ys = np.sin(xs)
yc = np.cos(xs)
plt.figure(figsize=(6,3))
plt.plot(xs, ys)
plt.plot(xs, yc)
plt.plot(xs, yL, ls='--', marker='*')
plt.title(style)
plt.tight_layout()
plt.show()
draw('default')
所谓mpl,即matplotlib,颇有种官方的意味,故而先展示这三种绘图风格,默认的蓝橘绿配色大家其实都很熟悉了。
mpl风格如下
draw(‘_mpl-gallery’) | draw(‘_mpl-gallery-nogrid’) |
---|---|
![]() |
![]() |
除了"default"之外,“fast"和”_classic_test_patch"似乎并不会修改太多绘图元素,由于在测试代码中,所有风格都在default之后执行,从而绘制结果与default十分相似
![]() |
![]() |
matplotlib提供了classic和灰阶配色,这两个看上去十分古老,尤其是classic,颇有种上个世纪的特点。
![]() |
![]() |
最后,matplotlib还提供了夜间模式,暗黑配色如下
ggplot就是那个大名鼎鼎的R语言绘图工具;bmh,则是Bayesian Methods for Hackers,是一本介绍贝叶斯理论的书籍,感觉这本书貌似也用的ggplot绘图
ggplot | bmh |
---|---|
![]() |
![]() |
fivethirtyeight俗称538,是美国民调网站,"fivethirtyeight"模仿了这个网站的配色。
Solarized是比较经典的终端配色方案,"Solarize_Light2"复刻了其中一种配色方案。
tableau是一个数据可视化软件,我并没有用过,"tableau-colorblind10"应该是从tableau中模仿的配色方案。
![]() |
![]() |
作为matplotlib的中坚补充包,seaborn的审美还是比较在线的,matplotlib中提供了几乎seaborn中的所有绘图风格,而且不多不少刚好16个,下面统一绘制这些seaborn风格图像,代码如下
ss = [a for a in matplotlib.style.available if "seaborn" in a]
xs = np.linspace(-5,5,100)
yL = xs/5
ys = np.sin(xs)
yc = np.cos(xs)
fig = plt.figure(figsize=(14,8))
for i,s in enumerate(ss, 1):
ax = fig.add_subplot(4,4,i)
matplotlib.style.use('default')
matplotlib.style.use(s)
ax.plot(xs, ys, label="sin")
ax.plot(xs, yc, label="cos")
ax.plot(xs, yL, label="line", ls='--', marker='*')
plt.title(s)
plt.legend()
plt.tight_layout()
plt.show()