Matplotlib数据可视化实战-1数据可视化Matplotlib基础

1.1绘图的一般过程:

1.导入相关库

2.生成、读入或计算得到数据; 

3.根据需要绘制折线图、散点图、柱状图、饼状图、雷达图、箱线图、三维曲线/曲面以及极坐标系图形;

4.根据需要设置图形属性;

5.显示或保存绘图结果。

例如:

import pandas as pd  
import matplotlib.pyplot as plt  
  
# 读取CSV文件  
data = pd.read_csv('your_data.csv')  # 替换为你的CSV文件路径  
  
# 假设CSV文件有两列数据,列名为'x'和'y'  
x_data = data['x']  
y_data = data['y']  
  
# 绘制图形  
plt.plot(x_data, y_data)  
  
# 添加标题和坐标轴标签  
plt.title('My Data Plot')  
plt.xlabel('X Axis')  
plt.ylabel('Y Axis')  
  
# 显示网格  
plt.grid(True)  
  
# 显示图形  
plt.show()

1.2图形属性设置

1.设置坐标轴标签:使用matplotlib.pyplot模块的xlabel()、ylabel()函数或轴域的set_xlabel()、set_ylabel()方法;

2.设置坐标轴刻度:使用matplotlib.pyplot模块的xticks()、yticks()函数或轴域set_xticks()、set_yticks()方法;

3.设置图例:使用matplotlib.pyplot模块的legend()函数或轴域的同名方法;

4.设置标题:使用matplotlib.pyplot模块title()、suptitle()函数或轴域的set_title()方法。

1.3显示中文字符

Matplotlib默认情况下无法直接显示中文字符,如果图形中需要显示中文字符,可以使用import matplotlib.pyplot as plt 导入模块pyplot,然后查看plt.rcParams字典中的当前值并进行必要的修改,也可以通过pyplot模块的xlabel()、ylabel()、xticks()、yticks()、title()等函数或轴域(也称子图)对象对应的方法的fontproperties参数对坐标轴标签、坐标轴刻度、标题单独进行设置;如需设置图例中的中文字符可以通过legend()函数的prop参数进行设置。

使用下面的代码可以查看所有的可用字体。

from matplotlib.font_manager import fontManager

names =sorted([f.name for f in fontManager.ttflist])

for name in names:
    print(name)

结果输出(部分展示):

Arial
Arial
Arial
Arial
Arial
Bahnschrift
Calibri
Calibri
Calibri
Calibri
Calibri
Calibri
Cambria
Cambria
Cambria
Cambria
Candara
Candara
Candara
Candara
Candara
Candara
Comic Sans MS
Comic Sans MS
Comic Sans MS
Comic Sans MS
Consolas
Consolas
Consolas
Consolas
Constantia
Constantia
Constantia
Constantia
Corbel
Corbel
Corbel
Corbel
Corbel
Corbel
Courier New
Courier New
Courier New
Courier New
DejaVu Math TeX Gyre
DejaVu Sans
DejaVu Sans
DejaVu Sans
DejaVu Sans
DejaVu Sans Display
DejaVu Sans Mono
DejaVu Sans Mono
DejaVu Sans Mono
DejaVu Sans Mono
DejaVu Serif
DejaVu Serif
DejaVu Serif
DejaVu Serif
DejaVu Serif Display
DengXian
DengXian
DengXian
Ebrima
Ebrima
FZCaiYun-M09
FZCuYuan-M03
FZDaBiaoSong-B06
FZDaHei-B02
FZFangSong-Z02
FZHei-B01S
FZKai-Z03
FZNew BaoSong-Z12
FZNew ShuTi-S08
FZXiDengXian-Z06
FZXiQian-M15
FZXiYuan-M01
FZXiaoBiaoSong-B05
FZXiaoBiaoSong-B05S
FZXingKai-S04
FZZhongDengXian-Z07 
FZZhongQian-M16
FZZhunYuan-M02
FangSong
FangSong_GB2312
Franklin Gothic Medium
Franklin Gothic Medium
Gabriola
Gadugi
Gadugi
Georgia
Georgia
Georgia
Georgia
HoloLens MDL2 Assets

注意:在进行可视化时,应尽量避免仅仅依赖于颜色的不同来区分同一图形中的多个线条、柱或面片,还应借助于线型、线宽、端点符号、填充符号等属性来提高区分度。【因为不是总能保证有彩色打印机】

在绘图中,同一组数据可以使用不同形式的图形进行可视化,既可以绘制折线图,也可以绘制柱状图、散点图、饼状图等其他图形。

1.4绘图结果显示或保存

绘制图形并设置外围属性之后可以调用pyplot模块的show()函数直接显示图形,也可以使用savefig()函数或图形对象的同名方法保存图片文件。

savefig()函数完整用法如下:

savefig(fname, dpi=None, facecolor='w', edgecolor='w',  
        format=None, transparent=False, bbox_inches=None, pad_inches=0.1,  
        frameon=None, orientation='portrait', papertype=None,  
        format_kw=None, metadata=None)

参数说明

  • fname:文件名或类似文件的对象。可以是文件的路径(如 'figure.png' 或 'path/to/figure.pdf'),或者是任何具有 write() 方法的对象,比如 BytesIO。
  • dpi:图像的分辨率,即每英寸的点数。如果设置为 None,则默认使用保存格式的默认分辨率。
  • facecolor 和 edgecolor:图像的背景色和边框色。默认为白色。
  • format:文件格式。如果未指定,Matplotlib 会根据提供的文件名推断格式。例如,如果 fname 是 'figure.png',则格式是 'png'
  • transparent:如果为 True,则图像的背景将是透明的。这通常与 facecolor 和 edgecolor 设置为 'none' 一起使用。
  • bbox_inches:一个 Bbox 对象,或者 'tight' 或 'standard'。用于确定保存图像时考虑的图形区域。'tight' 会裁剪图形周围的空白,'standard' 会使用图形的完整区域。
  • pad_inches:在保存图像时,在图形周围添加的额外空白(以英寸为单位)。
  • frameon:是否绘制图形框架。如果设置为 None,则使用当前图形的 frameon 设置。
  • orientation 和 papertype:这些参数主要用于 PostScript 和 PDF 输出,用于控制页面的方向和类型。
  • format_kw:一个字典,包含特定于输出格式的额外关键字参数。例如,对于 JPEG 图像,你可以设置压缩质量。
  • metadata:一个字典,包含要保存到文件中的元数据。

例如:

import matplotlib.pyplot as plt
import numpy as np

# 创建一些示例数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 绘制图形
plt.plot(x, y)
plt.title('Sine Curve')
plt.xlabel('x')
plt.ylabel('y')

# 保存图形为 PNG 文件
plt.savefig('sine_curve.png', dpi=300)

# 显示图形(可选)
plt.show()

 

1.5 Matplotlib绘图风格样式

 Matplotlib绘图风格样式很多,下列代码列出了所有可用的样式。

import matplotlib.pyplot as plt
plt.style.available
print(plt.style.available)

结果输出:

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

下面的举例将演示如何指定图形演示,图1.5.1和图1.5.2分别演示默认样式和fivethirtyeight两种样式的效果,其他样式大家可以自行测试。

1.5.1默认样式

import numpy as np
import matplotlib.pyplot as plt


x = np.arange(0,7,0.01)
y = np.sin(x)
plt.plot(x,y)
plt.show()

1.5.2指定样式

import numpy as np
import matplotlib.pyplot as plt

#指定图形样式
plt.style.use('fivethirtyeight')
x = np.arange(0,7,0.01)
y = np.sin(x)
plt.plot(x,y)
plt.show()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/468693.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

缺失的第一个正数-面试热题 100?-Lua 中文代码解题第5题

缺失的第一个正数-面试热题 100?-Lua 中文代码解题第5题 解题思路: 遍历数组并尝试将元素放入正确的位置: 遍历输入数组 nums,对于每个元素 nums[i]: 如果 nums[i] 是一个正整数,并且它的值小于或等于数组…

Windows Server 2012 R2在安装软件的时候显示乱码

1、打开控制面板——时钟、语言和区域——语言,添加为汉语 2、接着选择区域为中国 3、完美解决

Covalent Network(CQT)借助最大规模的历史与实时 Web3 数据集,推动人工智能的发展

人工智能在众多领域中增强了区块链的实用性,反之亦然,区块链确保了 AI 模型所使用的数据的来源和质量。人工智能带来的生产力提升,将与区块链系统固有的安全性和透明度融合。 Covalent Network(CQT)正位于这两项互补技…

day11【网络编程】

day11【网络编程】 主要内容 软件架构CS/BS网络通信三要素TCP通信Socket套接字ServerSocket 目标 能够辨别UDP和TCP协议特点 能够说出TCP协议下两个常用类名称 能够编写TCP协议下字符串数据传输程序 能够理解TCP协议下文件上传案例 能够理解TCP协议下案例2 第一…

dockers拉取MySQL及Redis并挂载文件

目录 一 . MySQL拉取 1、进入 MySQL 容器内部。 2、登录 MySQL。 3、修改远程连接 4、刷新 二 . Redis拉取 1 . redis/conf中新建文件redis.conf,内容如下: 2 . 容器运行 一 . MySQL拉取 docker run -d --restartalways --name mysql \ -v /…

基于Spring Boot的中医学习服务管理系统

摘 要 随着世界经济信息化、全球化的到来和互联网的飞速发展,推动了各行业的改革。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、动态的、交互友好的、高效的中医学习服务管理系统。当前的信息管理存…

【拓扑排序】有向图的拓扑排序

问题描述 给定一个 n 个点 m 条边的有向图,点的编号是 1 到 n,图中可能存在重边和自环。 请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。 若一个由图中所有点构成的序列 A 满足:对于图中的每条…

超长期特别国债来了!你想了解的都在这里!

今年全国两会,超长期特别国债成为广受关注的热点话题之一。政府工作报告在“积极的财政政策要适度加力、提质增效”总体要求下,明确重要增量举措:从今年开始拟连续几年发行超长期特别国债,专项用于国家重大战略实施和重点领域安全…

深入解析Go语言`errors`库:提升你的错误处理技能

深入解析Go语言errors库:提升你的错误处理技能 引言Go的错误处理简介错误作为值error接口简单错误处理示例 errors包概览创建错误错误格式化错误检查示例:错误检查 创建和使用自定义错误定义自定义错误类型使用自定义错误错误包装错误处理的灵活性 错误检…

【python 装饰器 - 重试】做一个简易重试装饰器,如果函数执行错误则会自动重新执行,可设置重试次数,对爬虫比较友好

文章日期:2024.03.19 使用工具:Python 类型:装饰器 文章全程已做去敏处理!!! 【需要做的可联系我】 AES解密处理(直接解密即可)(crypto-js.js 标准算法)&…

数据库国产化探究及升级改造过程指导

一、背景 在信创“自主可控”的浪潮下,政企行业首当其冲,基于国产化信创的要求,本部门某业务后端应用也需要针对分析开源组件的风险和开源协议的商业应用限制;能用国产化替代的评估后尽可替代割接,本期针对传统数据库…

控制学习_正弦波无刷直流力矩电机建模、控制带宽讨论与选择

无刷电机通过电子换向器实现定子的磁场旋转,去电刷后使用寿命大幅提升,是现在更流行的选择。三相无刷电机则是无刷电机中比较流行的一款。三相无刷电机的驱动方式有多种,最简单的被称为梯形波驱动、方波驱动或正弦波驱动。而正弦波驱动技术可…

SpringBoot 监控 SQL 运行情况

1 基本概念 2 添加依赖 3 配置相关属性 4 sql监控 5 慢sql记录 6 spring 监控 7 去 Ad(广告) 8 获取 Druid 的监控数据 1 基本概念 Druid 是Java语言中最好的数据库连接池。 虽然 HikariCP 的速度稍快,但是,Druid能够提…

Elasticsearch:使用 OpenAI、LangChain 和 Streamlit 的基于 LLM 的 PDF 摘要器和 Q/A 应用程序

嘿! 您是否曾经感觉自己被淹没在信息的海洋中? 有这么多的书要读,而时间却这么少,很容易就会超负荷,对吧? 但猜猜怎么了? 你可以使用大型语言模型创建自定义聊天机器人,该模型可以帮…

极客早报第2期:93年副所长入警9年满头白发;黑马情侣提车;早上六点起床跟八点起床的区别

一分钟速览新闻点! 每日简报 93年副所长入警9年满头白发黑马情侣提车早上六点起床跟八点起床的区别男子被流浪猫绊倒投喂者赔24万鸡骨泥运用于淀粉肠中不算违规路边卖淀粉肠阿姨主动出示声明书她和智障哥哥唯一合照是别人拍的卫健委回应卖血猝死广西辟谣“核潜艇生…

01.Linked-List-Basic

1. 链表简介 1.1 链表定义 链表(Linked List):一种线性表数据结构。它使用一组任意的存储单元(可以是连续的,也可以是不连续的),来存储一组具有相同类型的数据。 简单来说,「链表」…

2.1(TCP)

TCP—传输控制协议 是一种面向连接的可靠传输协议。可靠、有序、无丢弃和不重复。 特点: TCP是面向连接(虚连接)的传输层协议每一条TCP连接有且只能有两个端点。可靠、有序、无丢弃和不重复。TCP协议提供全双工通讯。 发送缓存 存放发送方…

phpStudy安装thinkCMF8时,如何解决服务器rewrite和APIrewrite不支持的问题

解决步骤: 一:服务器rewrite 点击后面的问号跳转到官方文档链接: 复制红框内的代码 打开phpstudy,找到配置的站点,点击管理,找到伪静态 点击确认保存即可。 phpstudy会自动重启站点。 此时,…

Hive-技术补充-ANTLR词法语法分析

一、背景 要清晰的理解一条Hql是如何编译成MapReduce任务的,就必须要学习ANTLR。下面是ANTLR的官方网址,下面让我们一起来跟着官网学习吧 ANTLR 二、ANTLR元语言 1、启发 静下来想想,一门语言有什么组成,比如我们的中文&…

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+GTX 8b/10b编解码SFP光口传输,提供2套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博主所有FPGA工程项目-->汇总目录本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI…