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 fontManagernames =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 pltx = 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()

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言大小写字母的转换

通过ascll码表我们可以知道大写字母与小写字母相差32个数&#xff08;小写字母比大写字母大&#xff09;。因此&#xff0c;通过相加减32即可转换大小写字母。 #include <stdio.h>int main() {char ch c;char CH A;printf("%c\n", ch - 32);printf("%c…

计算机网络实验——学习记录

1. tun/tap模块&#xff1a;为Linux系统提供网络虚拟功能&#xff0c;tun位于网络OSI模型的三层&#xff08;网络层&#xff09;&#xff0c;tap位于网络的二层&#xff08;数据链路层&#xff09;。 1.1 验证是否包含tun/tap模块&#xff1a;modinfo tun&#xff1b; 1.2 验…

Python进程与线程开发

目录 multiprocessing模块 线程的开发 threading模块 setDaemon 死锁 线程间的通信 multiprocessing模块 运行python的时候&#xff0c;我们都是在创建并运行一个进程&#xff0c;(linux中一个进程可以fork一个子进程&#xff0c;并让这个子进程exec另外一个程序)。在pyt…

全局路径规划算法 - 动态规划算法Python实现

参考博客&#xff1a; &#xff08;1&#xff09;算法数据结构——动态规划算法&#xff08;Dynamic Programming&#xff09;超详细总结加应用案例讲解 &#xff08;2&#xff09;【路径规划】全局路径规划算法——动态规划算法&#xff08;含python实现&#xff09; &#xf…

【上交主办·EI会议】| 2024年模式分析与机器智能国际会议 (ICPAMI 2024)

会议简介 Brief Introduction 2024年模式分析与机器智能国际会议(ICPAMI 2024) 会议时间&#xff1a;2024年8月30日-9月1日 召开地点&#xff1a;中国上海 大会官网&#xff1a;www.icpami.org ICPAMI 2024将围绕“模式分析与机器智能”的最新研究领域展开&#xff0c;为研究人…

(零)OpenOFDM接收端整体思路

一旦捕获射频信号并将其下变频至基带&#xff0c;解码管道就会启动&#xff0c;包括&#xff1a; OFDM&#xff0c;多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力&#xff0c;能够支持多用户接入。 OFDM主要思想是&#xff1a;将信…

Finding the Majority Element寻找主元素

Problem Is there the majority element in sequence A [1.. n]? If so, please find it out. An integer a in A is called the majority if it appears more than [n/2] times in A.寻找元素出现次数大于n/2 Algorithm 1 —— The brute-force method 遍历序列中的每个元…

物联网数据驾驶舱

在信息化时代&#xff0c;数据已经成为驱动企业发展的核心动力。特别是在物联网领域&#xff0c;海量数据的实时采集、分析和监控&#xff0c;对于企业的运营决策和业务优化具有至关重要的作用。HiWoo Cloud作为领先的物联网云平台&#xff0c;其数据监控功能以“物联网数据驾驶…

Docker常见指令

1.docker search mysql &#xff1a;从docker镜像仓库搜索和mysql有关的镜像 docker search mysql 2.docker pull mysql &#xff1a;从docker仓库拉取mysql镜像 docker pull mysql 3.docker run mysql &#xff1a;启动mysql镜像 docker run mysql 4.docker ps &#xff…

工业母机5G智能制造工厂数字孪生可视化平台,推进行业数字化转型

随着科技的不断进步和工业的快速发展&#xff0c;数字化转型已成为工业领域的重要趋势。工业母机作为制造业的核心设备&#xff0c;其智能化、自动化水平的提升对于整个工业的发展具有重要意义。5G技术的广泛应用&#xff0c;为智能制造工厂提供了更为可靠、高速的网络连接&…

OSError: We couldn‘t connect to ‘https://huggingface.co‘ to load this file

想折腾bert的同学&#xff0c;应该也遇到这个问题。 一、报错信息分析 完整报错信息&#xff1a;OSError: We couldnt connect to https://huggingface.co to load this file, couldnt find it in the cached files and it looks like google/mt5-small is not the path to a…

力扣刷题Days20-151. 反转字符串中的单词(js)

目录 1,题目 2&#xff0c;代码 1&#xff0c;利用js函数 2&#xff0c;双指针 3&#xff0c;双指针加队列 3&#xff0c;学习与总结 1&#xff0c;正则表达式 / \s /&#xff1a; 2&#xff0c;结合使用 split 和正则表达式&#xff1a; 1,题目 给你一个字符串 s &am…

Docker学习之使用harbor搭建私有仓库(超详解析)

实验目的&#xff1a; 使用centos7&#xff0c;基于harbor构建私有仓库 实验步骤&#xff1a; 下载相关安装包和依赖&#xff1a; [rootlocalhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 wget //安装docker所需要的相关依赖 [rootlocalhost ~]#…

山景BP1048 升级狗烧写

1.打开MVAssistant_BP10xx工具&#xff0c;在芯片型号栏中选择B1X系列。 2.模式选择 选 M2.仅升级Flash SH(可选) 3 .Code数据选择SDK编译好的bin文件 4.const数据选择编译好的提示音bin文件。 5.点击升级狗下载。 6. 如下图所示&#xff0c;出现提示为正在给升级狗正在下载程…

git pull 报错: 在签出前,请清理存储库工作树

问题&#xff1a; 使用vscode 用git 拉取代码&#xff0c;提示&#xff1a;在签出前&#xff0c;请清理存储库工作树** 原因&#xff1a; git仓库上的代码和本地代码存在冲突了所以会报这个报错。 解决办法&#xff1a; ①git stash 先将本地修改存储起来 ②git pull 拉取远…

创新应用2:nnmf+DBO+K-Medoids聚类,蜣螂优化算法DBO优化K-Medoids,适合学习和发paper。

创新应用2&#xff1a;nnmfDBOK-Medoids聚类&#xff0c;蜣螂优化算法DBO优化K-Medoids&#xff0c;适合学习和发paper。 一、蜣螂优化算法 摘要&#xff1a;受蜣螂滚球、跳舞、觅食、偷窃和繁殖等行为的启发&#xff0c;提出了一种新的基于种群的优化算法(Dung Beetle Optim…

多个图片怎么变成一张动图?一个方法在线操作

如何将图片变成gif动画&#xff1f;gif动图文件体积、画面丰富兼容性也比较高。通过多张静图就能够制作一张gif动画&#xff0c;能够自己制作生动有趣的gif动态图片能更好的传达信息。只需要使用在线图片合成&#xff08;https://www.gif.cn/&#xff09;工具&#xff0c;上传j…

【C语言基础】:字符函数和字符串函数

文章目录 一、字符函数1. 字符分类函数2. 字符转化函数 二、字符串函数1. strlen函数的使用和模拟实现strlen函数的使用strlen函数的模拟实现 2. strcpy函数的使用和模拟实现strcpy函数的使用strcpy函数的模拟实现 3. strcat函数的使用和模拟实现strcat函数的使用strcat函数的模…

el-table树形数据序号排序处理

1&#xff0c;用下面这个代码可以实现基本表格的序号排序 <el-table-column label"序号" width"50px" align"center"><template slot-scope"scope">{{ scope.$index 1 }}</template></el-table-column>2&…

【LeetCode热题100】104. 二叉树的最大深度(二叉树)

一.题目要求 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 二.题目难度 简单 三.输入样例 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 示例 2&am…