Python 数据分析——Matplotlib相关知识

2023-11-20

Python 数据分析——Matplotlib相关知识

第五章 Matplotlib相关知识 —— 样式



前言

介绍matplotlib中样式和颜色的使用,绘图样式和颜色是丰富可视化图表的重要手段,可以让可视化图表变得更美观,突出重点和凸显艺术性。

关于绘图样式,常见的有3种方法,分别是修改预定义样式,自定义样式和rcparams
关于颜色使用,本章介绍了常见的5种表示单色颜色的基本方法,以及colormap多色显示的方法。


一、matplotlib的绘图样式(style)

1.matplotlib预先定义样式

matplotlib内置了总共以下26种丰富的样式可供使用者选择。
查询print(plt.style.available)

['bmh', 'classic', 'dark_background', 
'fast', 'fivethirtyeight', 'ggplot', 
'grayscale', 'seaborn-bright', 'seaborn-colorblind', 
'seaborn-dark-palette', 'seaborn-dark', 'seaborn-darkgrid', 
'seaborn-deep', 'seaborn-muted', 'seaborn-notebook', 
'seaborn-paper', 'seaborn-pastel', 'seaborn-poster', 
'seaborn-talk', 'seaborn-ticks', 'seaborn-white', 
'seaborn-whitegrid', 'seaborn', 'Solarize_Light2',
 'tableau-colorblind10', '_classic_test']

几个例子

模板: plt.style.use('样式')

  • 初始化数据
x1 = np.linspace(0.0, 6.0, 100)
y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
  • bmh样式
plt.style.use('bmh')
plt.plot(x1,y1);

在这里插入图片描述


  • fivethirtyeight 样式
plt.style.use('fivethirtyeight')
plt.plot(x1,y1);

在这里插入图片描述


  • classic 样式
plt.style.use('classic')
plt.plot(x1,y1);

在这里插入图片描述


2.用户自定义stylesheet

在任意路径下创建一个后缀名为mplstyle的样式清单,编辑文件添加以下样式内容

axes.titlesize : 24
axes.labelsize : 20
lines.linewidth : 3
lines.markersize : 10
xtick.labelsize : 16
ytick.labelsize : 16

引用自定义

plt.style.use('file/diy.mplstyle')
# 混合样式
plt.style.use(['样式','file/diy.mplstyle'])
  • 例子
plt.style.use(['classic','E:/MyPython/diy.mplstyle'])
plt.plot(x1,y1);

在这里插入图片描述


3.设置rcparams

还可以通过修改默认rc设置的方式改变样式,所有rc设置都保存在一个叫做 matplotlib.rcParams的变量中。
修改过后再绘图,可以看到绘图样式发生了变化。

mpl.rcParams['lines.linewidth'] = 2
mpl.rcParams['lines.linestyle'] = '--'

在这里插入图片描述

mpl.rc('lines', linewidth=4, linestyle='-.')

在这里插入图片描述


  • 临时

如果只想为特定代码块使用样式但不想更改全局样式,样式包提供了一个上下文管理器,用于将更改限制在特定范围内。

with plt.style.context('bmh'):
    plt.plot(x1,y1, 'b-o') # "b"为颜色样式 "o"为点的样式
plt.show()

在这里插入图片描述

二、matplotlib的色彩设置(color)

从可视化编码的角度对颜色进行分析,可以将颜色分为色相、亮度和饱和度三个视觉通道。通常来说:
色相: 没有明显的顺序性、一般不用来表达数据量的高低,而是用来表达数据列的类别。
亮度和饱和度: 在视觉上很容易区分出优先级的高低、被用作表达顺序或者表达数据量视觉通道。

  • matplotlib自带颜色对照表
from matplotlib import colors
colors.CSS4_COLORS

1.RGB或RGBA

RGB 颜色对照表(0-1之间取值)

# 颜色用[0,1]之间的浮点数表示,四个分量按顺序分别为(red, green, blue, alpha),其中alpha透明度可省略
plt.plot([1,2,3],[4,5,6],color=(1, 1, 0))
plt.plot([4,5,6],[1,2,3],color=(0.1, 0.2, 0.5, 0.5));

在这里插入图片描述


2.HEX RGB 或 RGBA

RGB颜色和HEX颜色之间是可以一一对应的,以下网址提供了两种色彩表示方法的转换工具。
网址:https://www.colorhexa.com/

# 用十六进制颜色码表示,同样最后两位表示透明度,可省略
plt.plot([1,2,3],[4,5,6],color='#B22222')
plt.plot([4,5,6],[1,2,3],color='#B2222260')

在这里插入图片描述


3.灰度色阶

# 当只有一个位于[0,1]的值时,表示灰度色阶
plt.plot([1,2,3],[4,5,6],color='0.5')

在这里插入图片描述


4.单字符基本颜色

# matplotlib有八个基本颜色,可以用单字符串来表示
#分别是'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'
#对应的是blue, green, red, cyan, magenta, yellow, black, and white的英文缩写

plt.plot([1,2,3],[4,5,6],color='b')

在这里插入图片描述


5.颜色名称

# matplotlib提供了颜色对照表,可供查询颜色对应的名称
plt.plot([1,2,3],[4,5,6],color='PaleTurquoise')

在这里插入图片描述

  • 颜色名称对照表
    在这里插入图片描述

6.使用colormap设置一组颜色

在matplotlib中,colormap共有五种类型:

  • 顺序(Sequential)通常使用单一色调,逐渐改变亮度和颜色渐渐增加,用于表示有顺序的信息

  • 发散(Diverging)改变两种不同颜色的亮度和饱和度,这些颜色在中间以不饱和的颜色相遇;当绘制的信息具有关键中间值(例如地形)或数据偏离零时,应使用此值。

  • 循环(Cyclic)改变两种不同颜色的亮度,在中间和开始/结束时以不饱和的颜色相遇。用于在端点处环绕的值,例如相角,风向或一天中的时间。

  • 定性(Qualitative)常是杂色,用来表示没有排序或关系的信息。

  • 杂色(Miscellaneous)一些在特定场景使用的杂色组合,如彩虹,海洋,地形等。

在以下官网页面可以查询上述五种colormap的字符串表示和颜色图的对应关系
https://matplotlib.org/stable/tutorials/colors/colormaps.html

x = np.random.randn(50)
y = np.random.randn(50)
plt.scatter(x,y,c=x,cmap='summer');

在这里插入图片描述

参考

1.Datawhale

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 数据分析——Matplotlib相关知识 的相关文章

随机推荐

  • Java对象的快速复制的几种方式

    浅拷贝 深度复制 BeanUtils copyProperties 对象的克隆是指创建一个新的对象 且新的对象的状态与原始对象的状态相同 当对克隆的新对象进行修改时 不会影响原始对象的状态 注释 clone 是object类的protect
  • Makefile中的include命令详解

    转载地址 点击打开链接 关于Makefile中的include命令 网上有很多介绍 比较普遍的说法是 Makefile中的include命令与C语言中的include命令类似 命令include file dep 即把file dep文件在
  • 最流行的五大数据模型工具

    当今的商业决策对基于天的数据依赖越来越强烈 然而 正确而连贯的数据流对商业用户做出快速 灵活的决策起到决定性的作用 建立正确的数据流和数据结构才能保证最好的结果 这个过程叫做数据建模 为了避免认为错误并且加快进度 我们需要使用专业的软件来帮
  • CUBLAS变量解释(1)

    变量类型 cublasOperation t 解释 该类型表明输入的密集矩阵的形式 其值有 CUBLAS OP N 非转置 CUBLAS OP T 转置 CUBLAS OP C 共轭转置 该函数对应于BLAS FORTRAN版 的变量字符
  • C++文本文件,二进制文件,write(),read(),map容器,seekg(),seekp(),tellg(),tellp()函数

    include
  • 百度富文本编辑器UEditor配置及功能实现详解

    当前功能基于PHP 其它语言流程大抵相同 大概流程 1 将docx文件上传到服务器中 2 使用PHPoffice PHPword实现将word转换为HTML 3 将HTML代码返回并赋值到编辑器中 1 编辑器配置修改 1 1 新增上传wor
  • ubuntu下安装Navicat

    Step1 打开Navicat官网 下载Navicat 网址 http www navicat com en download download html Navicat for MySQL 10 0 11 Download Downloa
  • SQL中IN、NOT IN的使用,以及NULL值的比较

    SQL中IN以及NOT IN的使用 以及NULL值的比较 在LeetCode写 608 树节点 题时 发现使用NOT IN在比较值为空的列时存在问题 记录在此 IN 和 NOT IN 在SQL中是用来指定一个列应该与其匹配的值的列表 IN
  • 【论文阅读】learning with noisy correspondence for cross-modal matching ------ 跨模态匹配,噪声对应

    注意 本博客非逐字逐句翻译论文 是作者阅读论文后根据自己的理解所写 预知论文详情 请参阅论文原文 论文标题 Learning with Noisy Correspondence for Cross modal Matching 作者 Zhe
  • 信号与系统3——傅里叶描述

    信号与系统3 傅里叶描述 1 复正弦信号和线性时不变系统的频率相应 1 频率响应Frequency response 2 离散LTI系统的频率响应Frequency response of Discrete time LTI system
  • qml程序如何启动

    1 qml主界面是Window或者是ApplicationWindow 在main cpp中可以使用 QQmlApplicationEngine engine engine load main qml 2 qml中的主界面是Rectangl
  • MSP430F5529库函数——模数转换模块(ADC12)软件触发

    需提前观看 MSP430F5529库函数学习 串口 目录 代码 ADC初始化部分 引脚复位 ADC12 A init 函数声明 baseAddress sampleHoldSignalSourceSelect clockSourceSele
  • 一种简单的计算item相似度算法

    计算item之间相似度是个有意义的工作 比如词的相似度就有很多应用场景 词相似度就有很多做法 工业上现在用得最多的可能是word2vec了 还有些算语义相似度的偏学术的办法 这里介绍一种比较简单可行的思路 不只是算词相似度 其他类型也可以
  • C语言深入学习--checklist4:宏、枚举、switch

    宏 1 宏的本质是什么 函数 语句 类型定义 或者其它 预编译器的文本替换 1 你知道语言设计者为什么设计宏吗 这些原因目前是否成立 在 C程序中 可以用宏代码提高执行效率 宏代码本身不是函数 但使用起来象函数 预处理器用复制宏代码的方式代
  • 频率与补偿(下)

    该章节为频率与补偿 下 本文选自Research on Damping Factor Control Frequency Compensation 和Research on Multistage Amplifier Frequency Co
  • 采用ATL模型代替lib dll 的调用

    转载请标明是引用于 http blog csdn net chenyujing1234 例子代码 为WCE SDK下的例子 转为win32 自己移植 http www rayfile com zh cn files c638241c df8
  • slabinfo解读

    文件 proc slabinfo统计slab分配器相关信息 如 cat proc slabinfo slabinfo version 1 1 kmem cache 65 70 108 2 2 1 ip fib hash 10 112 32
  • 什么是批处理?

    什么是批处理 当需要向数据库中插入大批量数据时 在批处理之前 要执行100条sql 就只需100此打开连接关闭连接和网络传输 批处理过程 将大量的SQL打包成一个批次 发送给服务器 服务器接收数据 打开批 一次执行批里的sql 这样减少与数
  • ELM数据处理和调参经历 调参方法

    After I build the ELM model class I should find the best result for my data The most important thing to do is to process
  • Python 数据分析——Matplotlib相关知识

    Python 数据分析 Matplotlib相关知识 第五章 Matplotlib相关知识 样式 文章目录 Python 数据分析 Matplotlib相关知识 前言 一 matplotlib的绘图样式 style 1 matplotlib
Powered by Hwhale