matplotlib使用总结1

matplotlib 是一个用于创建静态、动态和交云图的 Python 绘图库。它可以用于 Python 脚本、Python 和 IPython shell、Jupyter 笔记本、web 应用服务器以及四个图形用户界面工具包中。matplotlib 尝试让简单的事情更简单,让困难的事情成为可能。你可以生成线图、柱状图、误差线图、散点图、直方图等许多不同格式的图表。

import matplotlib.pyplot as plt
import numpy as np

plt.plot 折线图

matplotlib.pyplot.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

*args:可以是一个或多个表达 x, y 值的数组。也可以通过提供 x, y, ‘format’ 的组合来控制线型和颜色。‘format’ 是一个字符串,用于指定颜色和线型,例如 ‘ro-’ 表示红色实线带圆点标记。

scalex, scaley:布尔值,用于确定是否自动缩放 x 轴或 y 轴的范围以适应数据的范围。

data:可选参数,如果提供,它是一个字典,用于指定通过字符串选择的变量来绘图。

**kwargs:关键字参数,用于指定绘图属性,如线条颜色(color)、线型(linestyle)、线宽(linewidth)、标记(marker)、标记大小(markersize)、标记颜色(markerfacecolor)等。

常用参数和示例

  • 颜色(color):设置线的颜色,例如 color=‘green’ 或 color=‘#006400’。
  • 线型(linestyle):设置线的样式,如实线(‘-’)、虚线(‘–’)、点线(‘-.’)、点虚线(‘:’)等。
  • 标记(marker):在每个数据点上设置标记,例如圆形(‘o’)、方形(‘s’)、星形(‘*’)等。
  • 线宽(linewidth):设置线的宽度,浮点数表示。 标签(label):设置图例的标签文本。
plt.plot(x, y, color='red', linestyle='--', marker='o', label='Data 1')
plt.legend()
plt.title('Custom Plot')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.show()

plt.scatter 散点图

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, alpha=None, linewidths=None, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

x, y:长度相同的数组,分别表示散点的 x 坐标和 y 坐标。

s:标量或数组形式,可选。表示点的大小。如果是数组,每个点的大小根据数组中的值来确定。
c:颜色,可选。可以是单个颜色格式的字符串,也可以是一系列颜色。
marker:标记样式,可选。matplotlib 支持多种点的标记样式,例如 'o' 表示圆圈,'s' 表示正方形等。
cmap:Colormap,可选。当 c 是一个浮点数数组时,cmap 将用于映射到颜色。
norm:Normalize 实例,可选。用于在数据和颜色映射之间进行归一化。
alpha:标量,可选。点的透明度。
linewidths:标量或数组形式,可选。点的边缘宽度。
edgecolors:颜色或颜色序列,可选。点的边缘颜色。
plotnonfinite:布尔值,可选。是否绘制非有限数(NaN、INF、-INF)的点。
data:字典形式的 data 参数,可选。如果给定,x 和 y 的值可以通过字符串键从中提取。
**kwargs:其他关键字参数,可以用于设置更多的属性(如边缘颜色、点的形状等)。

常用参数和示例

import numpy as np# 生成数据
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)  # 颜色数组
sizes = 1000 * np.random.rand(50)  # 点的大小数组# 创建散点图,自定义颜色和大小
plt.scatter(x, y, c=colors, s=sizes, alpha=0.5, cmap='viridis')# 添加颜色条
plt.colorbar()# 设定标题和坐标轴标签
plt.title('Customized Scatter Plot')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')# 显示图形
plt.show()

在这个示例中,c 参数控制点的颜色,s 参数控制点的大小,而 alpha 参数控制点的透明度。cmap 参数定义了一个颜色映射,plt.colorbar() 添加了一个颜色条以解释颜色的含义。

plt.xlabel 和 plt.ylabel

这两个函数分别用来设置 x 轴和 y 轴的标签。

plt.xlabel(label, fontdict=None, labelpad=None, loc=None, **kwargs)
plt.ylabel(label, fontdict=None, labelpad=None, loc=None, **kwargs)
plt.xlabel('X Axis Label')  # 设置 x 轴的标签
plt.ylabel('Y Axis Label')  # 设置 y 轴的标签

label:字符串,即坐标轴的标签文本。
fontdict:字典,可用于自定义标签的字体样式。这可以包括字体大小 (‘fontsize’)、字体颜色 (‘color’)、字体粗细 (‘fontweight’) 等。
labelpad:数值,指定标签与坐标轴之间的距离(以点为单位)。
loc:字符串,指定标签的位置。对于 xlabel,可选值包括 ‘left’、‘center’、‘right’。对于 ylabel,可选值包括 ‘bottom’、‘center’、‘top’。这个参数在较新版本的 Matplotlib 中引入,可能在一些旧版本中不可用。
**kwargs:其他关键字参数,可以用来设置文本属性,如 rotation(文本旋转角度)。

import matplotlib.pyplot as plt# 绘制一个简单的图形
plt.plot([1, 2, 3], [4, 5, 6])# 设置 x 轴和 y 轴标签,自定义样式
plt.xlabel('X Axis Label', fontdict={'fontsize': 14, 'fontweight': 'bold', 'color': 'blue'}, labelpad=15, loc='right')
plt.ylabel('Y Axis Label', fontdict={'fontsize': 14, 'fontweight': 'bold', 'color': 'green'}, labelpad=20, loc='top')plt.show()

plt.xlim 和 plt.ylim

这两个函数用来设置图表的 x 轴和 y 轴的显示范围。

plt.xlim(left, right)
plt.ylim(bottom, top)

left:x 轴的最小值。
right:x 轴的最大值。
bottom:y 轴的最小值。
top:y 轴的最大值。

这些参数可以是数字,表示具体的数值范围。如果你想要自动确定某一端的范围(例如,只设置最小值),你可以将相应的参数留空或设置为 None

plt.xlim(0, 10)  # 设置 x 轴的范围从 0 到 10
plt.ylim(-1, 1)  # 设置 y 轴的范围从 -1 到 1

在设置轴限之前,你可能想知道当前的轴限是什么。plt.xlim() 和 plt.ylim() 在没有任何参数的情况下可以返回当前的轴限:

current_xlim = plt.xlim()
current_ylim = plt.ylim()

如果你只想设置轴的一端(比如,只设置最小值),可以这样做:

plt.xlim(None, 6)  # 只设置 x 轴的最大值
plt.ylim(0, None)  # 只设置 y 轴的最小值

plt.title

此函数用来设置整个图表的标题。

plt.title('Chart Title')  # 设置图表的标题

常用参数

label (或第一个位置参数)

说明:标题的文本内容。
类型:字符串。

fontdict

说明:一个字典,用于控制标题的字体样式。可以包括诸如 'fontsize'、'fontweight'、'color' 等关键字来自定义标题文本的外观。
类型:字典。

loc

说明:标题的位置。默认值是 'center',表示标题居中。其他可选值包括 'left' 和 'right'。
类型:字符串。

pad

说明:标题与图表顶部边缘之间的间距,单位是点(pt)。
类型:数值。

plt.legend

用于添加图例,区分图中的不同数据集。

plt.legend(handles=None, labels=None, loc='best', title=None, frameon=True, shadow=False, fancybox=False, framealpha=1.0, bbox_to_anchor=None, borderaxespad=0.5, **kwargs)

常用参数说明

handles:一组用于添加图例项的艺术家(如线条、条形图等),通常不需要手动设置,因为当你在绘图命令(如 plt.plot())中使用 label 参数时,Matplotlib 会自动处理。
labels:一组字符串,用于指定每个图例项的标签。如果 handles 被指定,则 labels 也需要明确设置以匹配。
loc:指定图例的位置。可以是字符串(如 ‘upper right’、‘lower left’、‘center’ 等)或一个包含两个浮点数的元组,表示图例左下角的相对坐标(在轴坐标系中)。‘best’ 位置(默认)会自动选择最不碍事的位置。
title:字符串,用于给图例添加标题。
frameon:布尔值,指定是否显示图例边框。
shadow:布尔值,当设置为 True 时,图例会有阴影效果。
fancybox:布尔值,当设置为 True 时,会使用圆角边框绘制图例框。
framealpha:数值,控制图例框的透明度。
bbox_to_anchor:元组或 BboxBase 实例,用于确定图例框的位置。这在将图例放在轴的外部特别有用。
borderaxespad:数值,控制图例框与轴的边界之间的填充。

import matplotlib.pyplot as plt# 绘制两组数据
plt.plot([1, 2, 3], [4, 5, 6], label='Line A')
plt.plot([1, 2, 3], [6, 5, 4], label='Line B')# 添加图例
plt.legend(title='Legend Title', loc='upper left', frameon=False, shadow=True, fancybox=True, framealpha=0.5)plt.show()

plt.grid

用于添加或调整图表中的网格线,这有助于估计数据点位置。

plt.grid(visible=None, which='major', axis='both', **kwargs)

常用参数说明

visible:布尔值,用于控制网格线的显示与否。如果设置为 False,将隐藏网格线。
which:指定是添加主要的网格线 (‘major’)、次要的网格线 (‘minor’),还是两者都添加 (‘both’)。默认值是 ‘major’。
axis:指定添加网格线的轴。可以是 ‘x’、‘y’ 或 ‘both’。默认值是 ‘both’,即在 x 轴和 y 轴上都添加网格线。
**kwargs:提供额外的关键字参数来自定义网格线的样式,例如颜色 (color)、线型 (linestyle)、线宽 (linewidth) 等。

import matplotlib.pyplot as plt# 绘制一个简单的图形
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])# 添加并自定义网格线
plt.grid(True, which='both', axis='both', color='gray', linestyle='--', linewidth=0.5)plt.show()

plt.figure

创建一个新的图形或激活一个现有图形。

常用参数:

figsize:元组,指定图形的宽度和高度,单位为英寸。
dpi:整数,指定图形的分辨率,即每英寸点数。较高的 DPI 提供更高的图形质量。
facecolor:图形的背景颜色。
edgecolor:图形边缘的颜色。
num:图形的编号或名称。如果指定了编号,plt.figure 将激活现有图形;否则,将创建一个新图形。

import matplotlib.pyplot as pltplt.figure(figsize=(8, 6), dpi=80, facecolor='w', edgecolor='k')
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()

plt.text

用于在图形中的任意位置添加文本。
常用参数:

x, y:浮点数,表示文本在图形中的位置(基于数据的坐标系)。
s:字符串,你想在图形中显示的文本内容。
fontdict:字典,可用于控制文本的外观,如字体大小 (‘fontsize’)、字体颜色 (‘color’) 和字体风格 (‘fontstyle’) 等。
horizontalalignment, verticalalignment:字符串,控制文本的对齐方式。水平对齐方式可为 ‘left’, ‘center’, ‘right’;垂直对齐方式可为 ‘top’, ‘center’, ‘bottom’,
‘baseline’。
rotation:数值或字符串,控制文本的旋转角度。

plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.text(2, 8, 'Example Text', fontsize=12, color='red', horizontalalignment='center', verticalalignment='bottom', rotation=45)
plt.show()

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

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

相关文章

借记卡年费和小额账户管理费,以及换卡面不换号

文章目录 年费和小额账户管理费减免政策:每家银行均可有一张借记卡享受双免政策减免政策:代发工资、低保、社保、医保、失业保险、养老金、退休金、住房公积金等账户减免政策:二、三类电子账户一类卡、二类卡和三类卡二、三类电子账户不收取年…

Rust字符串深入理解

一、概述 Rust是一种系统级语言,进行操作系统等底层应用开发,同时又具合理的抽象处理能力。在进行Rust编程时,字符串处理是程序员经常碰到的工作。本文深入解析Rust语言中字符串的使用,包括 static string,String与&a…

LeetCode 2578.最小和分割

给你一个正整数 num ,请你将它分割成两个非负整数 num1 和 num2 ,满足: num1 和 num2 直接连起来,得到 num 各数位的一个排列。 换句话说,num1 和 num2 中所有数字出现的次数之和等于 num 中所有数字出现的次数。 num…

x86 32 64 Arm这些听过但不懂,都是什么?是架构还是系统?一文梳理

x86 听过吗?64位操作系统知道吧 和x86什么关系32和64都是什么东西?曾经的我也一头雾水,今天我才来整理一下,惭愧惭愧!今天带着沉重的心情来梳理一下学习内容吧 如果你很熟悉很了解计算机的话,应该知道&…

深度分析:社科赛斯——穿越市场周期二十二年的考研机构

近日,一份由有关部门发布的统计数据引发了广泛关注:在中国,中小企业的平均寿命仅有3.7年,而小微企业更是不到3年。这一数字凸显了中小企业所面临的挑战与困境。然而,在这个充满风险与变化的商业环境中,社科…

pytorch 鲜见操作

对两个 tensor 做逻辑运算,比如 & (与) import torch# 定义两个张量 tensor_a torch.tensor([1, 0, 1, 0], dtypetorch.bool) tensor_b torch.tensor([1, 1, 0, 0], dtypetorch.bool)# 执行逻辑与操作 result tensor_a & tensor_bprint(result)结果输出…

U-Net代码复现–train.py

本文记录自己的学习过程,内容包括: 代码解读:Pytorch-UNet 深度学习编程基础:Pytorch-深度学习(新手友好) UNet论文解读:医学图像分割:U_Net 论文阅读 数据:https://hack…

中霖教育:二级建造师证书好考吗?

在建筑行业,二级建造师资格认证相较于一级建造师资格,难度会低一些。考试科目共有三科,考生需要在连续两个年度内通过所有科目的考试才为通过。 对于具备建筑相关基础和实践经验的考生来说,二级建造师的考试难度会低一些。根据往…

云扩展要求(云租户)

层面控制点四级三级二级安全 区域 边界访问控制应在虚拟化网络边界部署访问控制机制,并设置访问控制规则;应在虚拟化网络边界部署访问控制机制,并设置访问控制规则;应在虚拟化网络边界部署访问控制机制,并设置访问控制…

30天拿下Rust之错误处理

概述 在软件开发领域,对错误的妥善处理是保证程序稳定性和健壮性的重要环节。Rust作为一种系统级编程语言,以其对内存安全和所有权的独特设计而著称,其错误处理机制同样体现了Rust的严谨与实用。在Rust中,错误处理通常分为两大类&…

KUKA机器人自动回原点程序

一、创建全局变量点 创建两个全局变量分别用于储存机器人的笛卡尔姿态与关节角姿态。 打开System文件夹中的config文件创建全局变量的点位。 在USER GROBALS用户自定义变量Userdefined variables下创建一个E6POS类型的点位,一个E6AXIS类型的点位。 二、创建回原点…

webRtc麦克风摄像头检测

最近在做webRtc相关音视频项目&#xff0c;碰到了很多用户不知道自己设备是否被支持发起webRtc&#xff0c;所以特意总结相关实用方法&#xff1b; HTML /*id方便一会把媒体流赋值过去, autoPlay: 自动播放 */ <audio id"devDetectionMicroRef" autoPlay><…

基于SpringBoot+Vue交通管理在线服务系统的开发(源码+部署说明+演示视频+源码介绍)

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通…

经典面试智力题总结

常见面试智力题总结 本部分主要是笔者在练习常见面试智力题所做的笔记&#xff0c;如果出现错误&#xff0c;希望大家指出&#xff01; 常见智力题 时针与分针夹角度数问题&#xff1f; 分析&#xff1a; 当时间为 m 点 n 分时&#xff0c;其时针与分针夹角的度数为多少&…

React状态管理Mobx

1 https://zh.mobx.js.org/README.html 2 https://juejin.cn/post/7046710251382374413 3 https://cn.mobx.js.org/refguide/observable.html ​​mobx入门基础教程-慕课网​​ ​​Mobx学习 - 掘金​​ 十分钟入门 MobX & React ​​十分钟入门 MobX & React​​…

警惕!On Hold被踢,2本1区,5本Springer旗下,共8本SCI/SSCI被剔除!

毕业推荐 SSCI&#xff08;ABS一星&#xff09; • 社科类&#xff0c;3.0-4.0&#xff0c;JCR2区&#xff0c;中科院3区 • 13天录用&#xff0c;28天见刊&#xff0c;13天检索 SCIE&#xff1a; • 计算机类&#xff0c;6.5-7.0&#xff0c;JCR1区&#xff0c;中科院2区…

农业气象站在农业生产中的应用—气象科普

农业气象站在农业生产中发挥着至关重要的作用。它能够有效监测和记录农田环境中的各类气象要素&#xff0c;为农民提供科学、准确的气象数据&#xff0c;帮助他们更好地掌握天气变化规律&#xff0c;从而合理安排农业生产活动。 首先&#xff0c;农业气象站能够实时提供温度、…

使用 Clojure 进行 OpenCV 开发简介

返回&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;如何将OpenCV Java 与Eclipse结合使用 下一篇&#xff1a; OpenCV4.9.0在Android 开发简介 ​警告 本教程可以包含过时的信息。 从 OpenCV 2.4.4 开始&#xff0c;OpenCV 支持…

Hibernate相关问题

文章目录 Hibernate是如何简化JDBC操作的&#xff1f;解释Hibernate的ORM概念Hibernate中的Session和Transaction有什么区别&#xff1f;Session&#xff1a;Transaction&#xff1a; Hibernate有哪些缓存类型&#xff1f;它们是如何工作的&#xff1f;一级缓存&#xff08;Fir…

挑战设计极限!电路仿真软件成功案例大揭秘,助您圆梦创新之路

在电子设计领域&#xff0c;电路仿真软件扮演着至关重要的角色。它们不仅能够帮助工程师们模拟和分析电路的性能&#xff0c;还能够加速设计过程&#xff0c;降低成本&#xff0c;提高产品的质量和可靠性。今天&#xff0c;让我们一起挑战设计极限&#xff0c;揭秘电路仿真软件…