郑州门户网站建设哪家好产品网络营销分析
文章目录
- 绘图风格
- 测试代码
- 默认和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 matplotlibdef draw(style=None):matplotlib.style.use('default')matplotlib.style.use(style)xs = np.linspace(-5,5,100)yL = xs/5ys = 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,颇有种官方的意味,故而先展示这三种绘图风格,默认的蓝橘绿配色大家其实都很熟悉了。
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中模仿的配色方案。
![]() | ![]() |
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()