matplotlib绘图风格

文章目录

    • 绘图风格
    • 测试代码
    • 默认和mpl风格
    • 复制风格
    • seaborn风格

绘图风格

matplotlib功能强大,可以定制各种绘图要素,以满足个性化的绘图需求,而更换绘图风格也十分便捷,一个matplotlib.style.use函数轻松搞定,而可用的绘图风格,可调用matplotlib.style.available列表得到,共有如下风格

  • matplotlib风格: ‘_mpl-gallery’, ‘_mpl-gallery-nogrid’
  • 更改较少的配色:‘fast’, ‘_classic_test_patch’
  • 经典配色:‘classic’, ‘grayscale’, ‘dark_background’
  • 复刻配色:‘‘ggplot’, ‘bmh’, Solarize_Light2’, ‘fivethirtyeight’, ‘tableau-colorblind10’
  • seaborn风格: ‘seaborn-v0_8’, ‘seaborn-v0_8-bright’, ‘seaborn-v0_8-colorblind’, ‘seaborn-v0_8-dark’, ‘seaborn-v0_8-dark-palette’, ‘seaborn-v0_8-darkgrid’, ‘seaborn-v0_8-deep’, ‘seaborn-v0_8-muted’, ‘seaborn-v0_8-notebook’, ‘seaborn-v0_8-paper’, ‘seaborn-v0_8-pastel’, ‘seaborn-v0_8-poster’, ‘seaborn-v0_8-talk’, ‘seaborn-v0_8-ticks’, ‘seaborn-v0_8-white’, ‘seaborn-v0_8-whitegrid’,

测试代码

下面将这些风格一一展示,考虑到这些绘图风格其实只是更改部分绘图参数,所以在更改风格之前,需要先恢复为默认绘图风格,绘图代码如下

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风格

所谓mpl,即matplotlib,颇有种官方的意味,故而先展示这三种绘图风格,默认的蓝橘绿配色大家其实都很熟悉了。

matplotlib绘图风格_第1张图片

mpl风格如下

draw(‘_mpl-gallery’) draw(‘_mpl-gallery-nogrid’)
matplotlib绘图风格_第2张图片 matplotlib绘图风格_第3张图片

除了"default"之外,“fast"和”_classic_test_patch"似乎并不会修改太多绘图元素,由于在测试代码中,所有风格都在default之后执行,从而绘制结果与default十分相似

matplotlib绘图风格_第4张图片 matplotlib绘图风格_第5张图片

matplotlib提供了classic和灰阶配色,这两个看上去十分古老,尤其是classic,颇有种上个世纪的特点。

matplotlib绘图风格_第6张图片 matplotlib绘图风格_第7张图片

最后,matplotlib还提供了夜间模式,暗黑配色如下

matplotlib绘图风格_第8张图片

复制风格

ggplot就是那个大名鼎鼎的R语言绘图工具;bmh,则是Bayesian Methods for Hackers,是一本介绍贝叶斯理论的书籍,感觉这本书貌似也用的ggplot绘图

ggplot bmh
matplotlib绘图风格_第9张图片 matplotlib绘图风格_第10张图片

fivethirtyeight俗称538,是美国民调网站,"fivethirtyeight"模仿了这个网站的配色。

Solarized是比较经典的终端配色方案,"Solarize_Light2"复刻了其中一种配色方案。

tableau是一个数据可视化软件,我并没有用过,"tableau-colorblind10"应该是从tableau中模仿的配色方案。

matplotlib绘图风格_第11张图片 matplotlib绘图风格_第12张图片

seaborn风格

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

matplotlib绘图风格_第13张图片

你可能感兴趣的:(#,Python可视化,matplotlib,ggplot,python,绘图,风格)