首页 > 其他分享 >【matplotlib基础】--样式表

【matplotlib基础】--样式表

时间:2023-09-15 20:12:54浏览次数:37  
标签:style plt -- draw matplotlib 风格 样式表 context

Matplotlib库 由于诞生的比较早,所以其默认的显示样式很难符合现在的审美,这也是它经常为人诟病的地方。

不过,经过版本更迭之后,现在 Matplotlib 已经内置了很多样式表,
通过使用不同的样式表,可以整体改变绘制图形的风格,不用再调整一个个显示参数。

1. 样式表的使用

1.1. 所有内置样式表

首先,查看内置的样式表有哪些:
image.png

import matplotlib.pyplot as plt

plt.style.available

1.2. 使用样式表的方式

使用样式表的方式有两种:
一种是全局样式表设置,比如:

plt.style.use("ggplot")

随后的代码中,所有绘制的图形都是 ggplot 风格。

另一种局部样式表设置,比如:

with plt.style.context("classic"):
    # 绘制图形
    pass

这种方式,样式表只在 with 范围内生效。

2. 不同样式表的效果

下面演示几种风格差异比较大的样式表。
首先,封装一个绘制图形的函数。

def draw():
    x = np.array(range(10))
    y = np.random.randint(10, 100, 10)
    
    fig = plt.figure(figsize=[6,4])
    fig.add_subplot(211)
    plt.plot(x, y)
    
    fig.add_subplot(212)
    plt.hist(y)

2.1. classic 风格

with plt.style.context("classic"):
    draw()

image.png

2.2. Solarize_Light2 风格

with plt.style.context("Solarize_Light2"):
    draw()

image.png

2.3. bmh 风格

with plt.style.context("bmh"):
    draw()

image.png

2.4. dark_background 风格

with plt.style.context("dark_background"):
    draw()	

image.png

2.5. fast 风格

with plt.style.context("fast"):
    draw()

image.png

2.6. ggplot 风格

with plt.style.context("ggplot"):
    draw()

image.png

2.7. seaborn 风格

seaborn是公认颜值比较高的绘图库,所以 Matplotlib 也支持很多种seaborn风格。
这里使用的是默认的 seaborn 风格。

with plt.style.context("seaborn-v0_8"):
    draw()

image.png

3. 总结

内置的样式表方便易用,提供了许多预定义的样式,可以快速帮助我们创建美观的图表。
使用内置的样式表还有个好处是可以保持图表的统一风格,使得图表具有更高的可读性和可维护性。

Matplotlib提供的丰富的样式表,可以满足不同类型的绘图需求,并且还可以通过自定义样式表来实现更加个性化的绘图效果。

标签:style,plt,--,draw,matplotlib,风格,样式表,context
From: https://www.cnblogs.com/wang_yb/p/17705842.html

相关文章

  • 23.9.15
    问题一:1、枚举可以使用枚举类型的取值来定义变量。在这段代码中,变量s和t都是Size类型的变量,分别引用了枚举类型Size的两个取值。2、枚举类型的比较:枚举类型的取值是对象,可以使用==运算符来比较两个枚举类型的取值是否相等。在这段代码中,s和t引用了不同的枚举类型取值,因此s==t的......
  • C# 乐观锁和悲观锁
    1.概要乐观锁(OptimisticLocking)乐观锁的核心思想是假设在大多数情况下,资源不会发生冲突,因此允许多个用户或线程同时读取和修改资源。只有在真正发生冲突的时候才会进行冲突解决。乐观锁的工作原理如下:版本标识或时间戳:在资源中引入一个版本标识(Version)或时间戳(Timestamp)字段......
  • Python集成开发环境IDE-Pycharm 2023 win+mac版
    PyCharm2023是一种流行的集成开发环境(IDE),专门为Python开发人员设计.→→↓↓载Pycharm2023mac/winPyCharm2023版提供了强大的代码编辑器,支持智能代码完成、代码分析、代码重构等功能。它还可以自动检测错误并提供修复建议。PyCharm的调试器非常强大,可以帮助开发人员诊断和......
  • 关于Azure-4层-负载均衡器的-Inbound NAT rules-入站NAT规则-通信的数据包抓取-分析
    关于Azure-4层-负载均衡器的-InboundNATrules-入站NAT规则-通信的数据包-分析先说一下客户端-负载均衡器-真实的后端主机,环境信息如下:客户端的IP地址:192.168.20.4入站NAT前端IP:192.168.10.100后端服务器的IP :192.168.10.5+++++++++++++++++++++++++++++++++++++++++++......
  • debia12报错 perl: warning: Setting locale failed
    目录前奏情景复现官方解释解决以防走丢前奏该文档是在Debian12上遇到的问题,特别做个记录情景复现perl:warning:Settinglocalefailed.perl:warning:Pleasecheckthatyourlocalesettings:LANGUAGE="en_US:en",LC_ALL=(unset),LC_CTYPE="zh_CN.UTF-8",LANG......
  • 【算法进阶课】动态规划笔记
    基环树DP一些基本概念:在一棵树上加一条边,就会构成一个环,环上会挂着一些子树。基环树是只有一个环的仙人掌。如果基环树的边是有向边,环上的点是p1,p2,p3,...则环上的边是p1->p2,p2->p3,...,pn->p1或者全部反过来总之就是环上的边要么全部逆时针要么全部顺时针。对于......
  • 第二十章 反射机制
    20.1基本概念通常情况下编写代码都是固定的,无论运行多少次执行的结果也是固定的,在某些特殊场合中编写代码时不确定要创建什么类型的对象,也不确定要调用什么样的方法,这些都希望通过运行时传递的参数来决定,该机制叫做动态编程技术,也就是反射机制。通俗来说,反射机制就是用于动......
  • 性能测试:入门级接口压测思路
    背景介绍相信很多测试项目上,很多都是身兼多职(既要做功能、自动化、性能啥都要做);这次依据个人对压测这块的理解,分享一下压测的思路。因为个人以前对压测有很多误区,所以在此分享下避免继续入坑(不喜勿喷,如果还有理解误区求指点,我在来完善);下面就讲下入门级的愚见:1、压力测......
  • 接口测试实践例子(内含不同接口只需登录一次的方法“自动登录”)
    一、接口文档1.API文档2.需求文档接口测试工具--》接口测试脚本--》接口测试框架二、利用fixture自动化就绪测试条件-部分接口来说,需要保持登录状态-部分接口来说,需要接口关联-动态数据接口信息-任务列表接口地址GEThttps://api.tttt.one/rest-v2/todo参数无响......
  • 3 - 任务调度算法 & 同步与互斥 &队列
    之前的都是按照优先级不同允许抢占(不讲道理),不管你在做什么,轮到优先级最高的任务,直接抢占执行怎样才能讲道理呢?稍微等等嘛,等我做完活你再做 1支持抢占,0不支持抢占 同优先级任务是否交替执行,1交替0不交 空闲任务是否礼让其他任务礼让的话,自己的函数逻辑在时间片内只执行......