无意发现了 Matplotlib 美化器

简介: 无意发现了 Matplotlib 美化器

论绘图,R一直压过Python一头,尤其是Python基础绘图库Matplotlib始终打不过ggplot2。


偶然看到 Matplotlib 风格美化神器——Aquarel,效果十分惊艳,先睹为快:

640.png

640.png

640.png

640.png


作为一名理工男我觉得这太酷了,很符合我对未来生活的想象,科技并带着趣味。


说回这个神器,Aquarel 是一个用于可视化的轻量级模板引擎,也是 Matplotlibsrcparams 包装器,使绘图的样式变得简单。Aquarel 模板可以通过编程定义,并以 JSON 格式进行序列化和共享。


用起来也极简单,举个例子,我们先用Matplotlib随便画个箱线图


import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-7, 7, 140)
x = np.hstack([-25, x, 25])
fig, ax = plt.subplots()
ax.boxplot([x, x], notch=True, capwidths=[0.01, 0.2])
plt.show()


640.png


加上aquarel的美化呢,他内置了11个风格,大家挑选自己喜欢的即可,比如就选 arctic_light


这里有两种常用方法,一种是全局设置主题


from aquarel import load_theme
theme = load_theme("umbra_light")
theme.apply()
fig, ax = plt.subplots()
ax.boxplot([x, x], notch=True, capwidths=[0.01, 0.2])
theme.apply_transforms()


另一种是使用上下文管理器,个人比较推荐


from aquarel import load_theme
with load_theme("umbra_light"):
    x = np.linspace(-7, 7, 140)
    x = np.hstack([-25, x, 25])
    fig, ax = plt.subplots()
    ax.boxplot([x, x], notch=True, capwidths=[0.01, 0.2])
    plt.show()


效果:


640.png


其实就是把正常的绘图代码段插进去就行了


其他风格大家可以自行探索吧,文末附开源代码和官方文档


插播个广告:前几天整理了当初入门数据分析时写的数据可视化文章、代码、示例图——【教程】Python数据可视化入门(⬅️点击直达)。

640.png


640.png


相关文章
|
6月前
|
数据可视化 Python
堆叠柱状图(pyecharts足矣 既好看又简单
堆叠柱状图(pyecharts足矣 既好看又简单
413 0
|
2月前
|
数据可视化 JavaScript 前端开发
Matplotlib动画制作:让数据生动起来!
Matplotlib动画制作:让数据生动起来!
53 0
|
3月前
|
数据可视化 数据挖掘 API
matplotlib字体设置看这一篇就够了
matplotlib字体设置看这一篇就够了
|
3月前
|
数据可视化 API Python
一行代码让matplotlib图表变高大上
一行代码让matplotlib图表变高大上
|
5月前
|
Python
【随手记】贴一段matplotlib绘图的多图拼接代码
【随手记】贴一段matplotlib绘图的多图拼接代码
52 1
|
6月前
|
数据可视化 API Python
Python绘图工具seaborn,教会你如何绘制更加精美的图形(二)
Python绘图工具seaborn,教会你如何绘制更加精美的图形(二)
118 0
|
6月前
|
数据可视化 Linux API
Python绘图工具seaborn,教会你如何绘制更加精美的图形(一)
Python绘图工具seaborn,教会你如何绘制更加精美的图形(一)
134 0
|
6月前
R语言作图不显示中文解决办法,如何使用中文字体
R语言作图不显示中文解决办法,如何使用中文字体
|
6月前
|
人工智能 数据可视化 算法
Matplotlib从入门到精通05-样式色彩秀芳华
Matplotlib从入门到精通05-样式色彩秀芳华
Matplotlib从入门到精通05-样式色彩秀芳华
|
6月前
|
缓存 数据库 数据安全/隐私保护
我绘制文章插图的三个神级工具
我绘制文章插图的三个神级工具
108 0