当前位置: 首页 > news >正文

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 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绘图

ggplotbmh
请添加图片描述请添加图片描述

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

请添加图片描述

http://www.lryc.cn/news/109500.html

相关文章:

  • 【初级教程】Appium 启动应用 log 日志分析
  • FANUC机器人SRVO-300机械手断裂故障报警原因分析及处理办法
  • MobPush iOS SDK iOS实时活动
  • c++开发模式,组合模式
  • 【GITHUB】FlipIt – Windows的开源翻页时钟
  • 基于 Flink Paimon 实现 Streaming Warehouse 数据一致性管理
  • 云游戏App简记
  • ChatGPT已打破图灵测试,新的测试方法在路上
  • Flask学习笔记_异步CMS(五)
  • 争夺年度智能汽车「中间件」方案提供商TOP10,谁率先入围
  • 【Spring Cloud一】微服务基本知识
  • swift - 如何在数组大小更改后刷新 ForEach 显示元素的数量(SwiftUI、Xcode 11 Beta 5)
  • 编程导航算法村第七关 |二叉树的遍历
  • 【docker】docker-compose安装带ui页面的kafka集群
  • java实现多级菜单
  • HTML中元素和标签有什么区别?
  • android 如何分析应用的内存(十三)——perfetto
  • Chapter20 音乐
  • 详解Nodejs中的模块化
  • debug思路 - maven构建报错
  • DSP学习笔记
  • Java中的Apache Commons Math是什么?
  • 规划路线(微信小程序、H5)
  • 【CSS】视频文字特效
  • linux-MySQL的数据目录
  • AI绘图实战(十二):让AI设计LOGO/图标/标识 | Stable Diffusion成为设计师生产力工具
  • 机器视觉系统设计:基础知识
  • C# Blazor 学习笔记(11):路由跳转和信息传值
  • Centos 7 安装 Python 时 zlib not available 错误解决
  • python sqllite基本操作