【matplotlib教程】数据可视化

news/2024/9/18 9:00:04/文章来源:https://www.cnblogs.com/UnderTurrets/p/18375818

@TOC


显示中文和负号

  • matplotlib默认使用英文字库,汉字会乱码,要指定中文字库
matplotlib.rcParams['font.family']='simHei'  #黑体
matplotlib.pyplot.rcParams['axes.unicode_minus'] = False	# 显示负号

1.各种绘图函数

1.1 matplotlib.pyplot.plot

def plot(*args, scalex=True, scaley=True, data=None, **kwargs):...

常用参数:

参数 含义
args1 横坐标数组(list,numpy数组,pandas电子表格)
args2 纵坐标数组(list,numpy数组,pandas电子表格)
label 图例名字,给一个字符串即可
color 颜色
linestyle 线型
marker 附加点的样式

参数说明:

  • 若输入两个数组作为args,那么第一个参数和第二个参数的数组长度必须相同,它们是一一对应关系
  • 若只输入一个数组作为args,那么matplolib会自动根据数组长度进行横坐标的索引
  • 颜色、线性、点样式会在第2节中详细介绍

1.2 matplotlib.pyplot.scatter

def scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None,vmin=None, vmax=None, alpha=None, linewidths=None, *,edgecolors=None, plotnonfinite=False, data=None, **kwargs):...

常用参数:

参数 含义
x 横坐标数组(list,numpy数组,pandas电子表格)
y 纵坐标数组(list,numpy数组,pandas电子表格)
s 点的大小
marker 点的样式
label 图例名字,给一个字符串即可
color 颜色

参数说明:

  • x参数和y参数的数组长度必须相同,一一对应
  • s表示点的大小,默认 20,也可以是个数组,数组每个参数为对应点的大小
  • 颜色、线性、点样式会在第2节中详细介绍

1.3 matplotlib.pyplot.bar

def bar(x, height, width=0.8, bottom=None, *, align='center',data=None, **kwargs):...

常用参数:

参数 含义
x 数组,柱形图的 x 轴数据
height 数组,柱形图的 y 轴数据
width 柱形图的宽度
bottom height 坐标的偏移量,默认 0
align 柱形图与 x 坐标的对齐方式
color 颜色
label 图例名字,给一个字符串即可
tick_label 用来替代 x 轴数据的字符串或字符串数组

参数说明:

  • x参数和height参数的数组长度必须相同,一一对应
  • width 表示柱的宽度,也可以是个数组,对应每条柱的横向宽度
  • bottom表示height坐标的偏移量,也可以是个数组,对应每条柱的y偏移量
  • align可选参数:中心对齐"center",左对齐"edge"
  • tick_label可以替代x轴的数字,也可以是个数组,对应每条柱的x轴位置
  • 颜色会在第2节中详细介绍

下面是一个在一张图上画出两幅柱状图的例子:

import numpy as np
import matplotlib.pyplot as plt
# 数据
x = np.arange(4)
Bj = [52, 55, 63, 53]
Sh = [44, 66, 55, 41]
bar_width = 0.3
# 绘图 x 表示 从那里开始
plt.bar(x, Bj, bar_width)
plt.bar(x+bar_width, Sh, bar_width, align="center")
# 展示图片
plt.show()

1.4 matplotlib.pyplot.pie

def pie(x, explode=None, labels=None, colors=None, autopct=None,pctdistance=0.6, shadow=False, labeldistance=1.1,startangle=0, radius=1, counterclock=True, wedgeprops=None,textprops=None, center=(0, 0), frame=False,rotatelabels=False, *, normalize=True, hatch=None, data=None):

常用参数:

参数 含义
x 数组,用于绘制饼图的数据,表示每个扇形的面积
explode 数组,表示各个扇形之间的间隔
labels 列表,各个扇形的标签
colors 数组,表示各个扇形的颜色
autopct 字符串,设置饼图内各个扇形百分比显示格式
radius 设置饼图的半径

参数说明:

  • x参数,labels参数,colors参数的数组长度必须相同,一一对应
  • explode决定图形显示的方式
  • autopct举例:%d%% 整数百分比,%0.1f 一位小数, %0.1f%% 一位小数百分比, %0.2f%% 两位小数百分比

1.5 matplotlib.pyplot.hist

def hist(x, bins=None, range=None, density=False, weights=None,cumulative=False, bottom=None, histtype='bar', align='mid',orientation='vertical', rwidth=None, log=False, color=None,label=None, stacked=False, *, data=None, **kwargs):...

常用参数:

参数 含义
x 数组,表示要绘制直方图的数据
bins 直方图的箱数
colors 颜色
label 图例

参数说明:

  • bins举例说明:如果 bins 参数为 30,这意味着将数据范围分成 30 个等宽的区间,然后统计每个区间内数据的频数。
  • 图例、颜色等,会在第2节中详细介绍

2.绘图样式

2.1 轴标签和标题

轴标签(matplotlib.pyplot.xlabel与matplotlib.pyplot.ylabel)

def xlabel(xlabel, fontdict=None, labelpad=None, *, loc=None, **kwargs):...
def ylabel(ylabel, fontdict=None, labelpad=None, *, loc=None, **kwargs):...
  • loc参数只有"left", "center" , "right "可选

标题

def title(label, fontdict=None, loc=None, pad=None, *, y=None, **kwargs):
  • loc参数只有"left", "center" , "right "可选

2.2 图例位置(matplotlib.pyplot.legend)

  • 在绘图时指定好label图例后,如果不使用matplotlib.pyplot.legend函数指定图例位置,图例是不会显示的
def legend(*args, **kwargs):...
  • loc参数如下:
可选参数
'upper right'
'upper left'
'lower left'
'lower right'
'right'
'center left'
'center right'
'lower center'
'upper center'
'center'

2.3 可选颜色(color)

常用颜色如下:

颜色标记 描述
'r' 红色
'g' 绿色
'b' 蓝色
'c' 青色
'm' 品红
'y' 黄色
'k' 黑色
'w' 白色

2.4 线型(linestyle)

常用线型如下:

线型标记 描述
'-' 实线
':' 点虚线
'--' 破折线
'-.' 点划线

2.5 点的样式(marker)

常用样式如下:
常用颜色如下:

可选markder 样式 描述
"." 在这里插入图片描述
"," 在这里插入图片描述 像素点
"o" 在这里插入图片描述 实心圆
"v" 在这里插入图片描述 下三角
"^" 在这里插入图片描述 上三角
"<" 在这里插入图片描述 左三角
">" 在这里插入图片描述 右三角
"1" 在这里插入图片描述 下三叉
"2" 在这里插入图片描述 上三叉
"3" 在这里插入图片描述 左三叉
"4" 在这里插入图片描述 右三叉
"8" 在这里插入图片描述 八角形
"s" 在这里插入图片描述 正方形
"p" 在这里插入图片描述 五边形
"P" 在这里插入图片描述 填充的加号
"*" 在这里插入图片描述 星号
"h" 在这里插入图片描述 六边形1
"H" 在这里插入图片描述 六边形2
"+" 在这里插入图片描述 加号
"x" 在这里插入图片描述 乘号
"X" 在这里插入图片描述 填充的乘号
"D" 在这里插入图片描述 菱形
"d" 在这里插入图片描述 瘦菱形
"|" 在这里插入图片描述 竖线
"_" 在这里插入图片描述 横线
4 在这里插入图片描述 左箭头
5 在这里插入图片描述 右箭头
6 在这里插入图片描述 上箭头
7 在这里插入图片描述 下箭头

3.画布管理与多图

3.1 subplots创建一张画布上的多图

def subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True,width_ratios=None, height_ratios=None,subplot_kw=None, gridspec_kw=None, **fig_kw):...

参数说明:

  • nrows表示子图的行数,ncols表示子图的列数

返回值说明:

  • 返回一个有2个元素的元组,分别为fig和ax。
  • fig为这张画布
  • ax为子图列表,想在第一张图上画折线图:调用ax[0].plot

3.2 subplot创建一张画布上的多图

def subplot(*args, **kwargs):

使用说明

  • 输入plt.subplot(2,2,1)后,表明此时选定2行2列的一共4张子图中的第1张子图
  • 此时调用plt.plt,就可以在第1张子图上绘图
  • 切换子图时,输入plt.subplot(2,2,2)后,表明切换到第2张子图

3.3 清理

  • 清理一张图上所有内容:
plt.cla()
  • 清理一张画布上的所有图:
plt.clf() 

3.4 画布尺寸设置

fig = plt.figure(figsize=(16, 6),dpi=100)

以上设置了一张宽度16英寸,高度6英寸的画布,且每英寸的像素个数为100,也就是说此图片的宽高是1600x600。大家可以自行修改想要的数值。

fig.tight_layout()

以上这行指令用于在所有子图都绘制完毕后自动调整子图之间的位置,防止子图的轴标签被遮挡。

动态图

  1. 先开启交互模式,然后提前展示画布
plt.ion()
plt.show()
  1. 在每轮绘制前先进行清理,然后停留
plt.cla()
plt.plot(...)
plt.pause(0.001)

本文由博客一文多发平台 OpenWrite 发布!

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

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

相关文章

Charles 抓包工具安装下载

下载 下载地址:https://www.charlesproxy.com/latest-release/download.do 激活 激活地址:https://www.zzzmode.com/mytools/charles/ 激活 help-》Register Charles 作者:陈彦斌 出处:https://www.cnblogs.com/chenyanbin/关注: 点我哟(^U^)ノ~YO

api调用工具推荐__hoppscotch(postwomen)

下载地址https://hoppscotch.com/downloadhoppscotch是一款开源api调用工具,该api调用工具之前叫postwomen,大概率是为了蹭postman热度,后来确实在开发者群体中被广泛使用,已经不再需要这种热度了,因此改名hoppscotch 官方给出改名的理由如下Similarity in name with &quo…

C#/.NET这些实用的编程技巧你都会了吗?

DotNet Exercises介绍 DotNetGuide专栏C#/.NET/.NET Core编程常用语法、算法、技巧、中间件、类库、工作业务实操练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.NET Core中各种编程常用语法、算法、技巧、中间件、类库、工作业务实操等等。GitHub源码地址:https://gi…

【日记】卸载了黑神话(402 字)

正文黑神话卸载了。电脑太卡了。等换电脑之后再玩吧。不过什么时候换我就不知道了,说实话,我觉得很有可能要把这台电脑用报废之后才会换了,保守估计得有个一年。那时候我还想不想打开这游戏都两说。而且听说剧情不太好,起码目前为止,孙悟空不再是那个正义、嫉恶如仇、惩恶…

PLT绘图

1、绘制不同颜色的点(二维) import matplotlib.pyplot as pltif __name__ == __main__:# 准备数据x = [1, 2, 3, 4, 5] # X轴上的点y = [1, 4, 9, 16, 25] # Y轴上的点,这里以x的平方为例colors = [red, green, blue, yellow, purple] # 点的颜色列表# 绘制点for i in ra…

Clion配置-运行多个单独cpp代码的main函数

修改CMakeLists.txt文件为 project(Your Project Name)set(CMAKE_CXX_STANDARD 11)# 遍历项目二级目录下所有的 .cpp 文件 file (GLOB files */*.cpp) foreach (file ${files})string(REGEX REPLACE ".+/(.+)/(.+)\\..*" "\\1-\\2" exe ${file})add_execut…

CSSpart-2(继续part-1)

CSS2基础 基础 简介 【全称】Cascading Style Sheets,又名层叠样式表层叠:一层一层涂上去 表:列表 样式:如文字大小,颜色,元素宽高等。CSS 描述了在屏幕、纸质、音频等其他媒体上的元素应该如何被渲染的问题。语言类型 标记语言,为HTML结构美化样式,实现语义与效果的分…

Spherical Voxelization

介绍了球面体素化的过程,包括重要的类和方法,如ConvertToSphericalVoxel和spherical_voxel_optimized,详细解释了参数及其作用。球面体素化通过将点云转换为球面坐标系,利用自适应采样权重来平衡不同纬度区域的点密度,从而有效捕捉几何特征。文中还提到C++绑定的sv.comput…

如何在Windows下使用make编译Makefile

最近有小伙伴咨询我去编译运行一个程序。我一开始以为是CMakeLists,结果发现是makefile。什么是Makefile ‌Makefile是一种用于自动化构建和管理程序的工具‌,它定义了项目中文件的依赖关系和构建步骤,帮助程序员自动化编译、链接和打包程序,从而提高软件开发效率。 Makefi…

lvgl 使用demo

实现效果 代码#define OBJ_PARENT_WIDTH 970#define OBJ_PARENT_HEIGH 446#define OBJ_BTN_WIDTH 150#define OBJ_BTN_HEIGH 50#define OBJ_BTN_POS_X 120#define OBJ_BTN_POS_Y 40#define OBJ_ITEM_WIDTH 420#define OBJ_ITEM_HEIGH 50 #define OBJ_TABLE_HEIGH 60 #define OB…

php读取access数据库

这个代码测试的老的access数据库,使用的php版本是5.4,php7.4的测试不通过 测试的文件: 链接:https://pan.quark.cn/s/c4cfef0bc484 提取码:N9mF 1.引入 com_dotnet 扩展,下载phpstudy,切换版本为php5.4,然后php.ini中加入extension=php_com_dotnet.dll2.复制下面代码<?ph…

conv1D,conv2D,和conv3D

torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode=zeros, device=None, dtype=None)