30 Python的matplotlib模块

news2024/11/18 22:38:03

概述

        在上一节,我们介绍了Python的pandas模块,包括:Series、DataFrame、数据读取和写入等内容。在这一节,我们将介绍Python的matplotlib模块。matplotlib模块是一个Python的2D绘图库,可以实现各种类型的图形绘制,包括:线图、柱状图、饼图、散点图等。matplotlib支持各种格式的输出,比如:PNG、SVG、PDF等,可以很方便地将图形输出到文件或在屏幕上显示。

        在Python中使用matplotlib模块,需要先安装matplotlib库。可以通过pip命令进行安装:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib。安装完成后,就可以在Python脚本中导入matplotlib模块,并使用其函数和方法了。

线图

        在下面的示例代码中,我们首先引入了Matplotlib的pyplot模块,并定义了x、y两个列表。然后,使用plt.plot(x, y)函数绘制了一条线。最后,通过plt.show()函数显示图形。

import matplotlib.pyplot as plt

x = [1, 3, 5, 7, 9]
y = [1, 9, 25, 49, 81]

plt.plot(x, y)
plt.show()

        执行上面的示例代码后,其输出如下。

        除了基本的绘图函数,Matplotlib还提供了许多参数设置功能,可以自定义图形的各种属性,比如:颜色、线型、刻度、标签等。下面的示例代码绘制了一条黄色的线,并设置了X轴和Y轴的标签。

import matplotlib.pyplot as plt

x = [1, 3, 5, 7, 9]
y = [1, 9, 25, 49, 81]

plt.plot(x, y, color = 'yellow')
plt.xlabel('X Axis')
plt.ylabel('Y Axis')
plt.show()

        执行上面的示例代码后,其输出如下。

        

柱状图

        在下面的示例代码中,我们使用plt.bar()函数绘制了一个简单的柱状图,并传入了标签和相应的数值,图形中的每个柱子都对应一个标签和一个数值。

import matplotlib.pyplot as plt

labels = ['C', 'S', 'D', 'N']
values = [36, 50, 22, 65]

plt.bar(labels, values)
plt.show()

        执行上面的示例代码后,其输出如下。

饼图

        在下面的示例代码中,我们使用plt.pie()函数绘制了一个简单的饼图,并传入了标签和相应的数值。plt.pie()函数有如下几个参数,分别进行介绍。

        sizes:表示每个部分的大小,它将自动根据这些大小生成饼图。

        labels:表示每个部分的标签。

        autopct:用于显示每个部分的百分比,格式由参数值决定。在本例中,它显示的是百分比的小数形式,保留两位小数。

import matplotlib.pyplot as plt

labels = ['C', 'S', 'D', 'N']
values = [36, 50, 22, 65]

# 保留两位小数
plt.pie(values, labels = labels, autopct = '%1.2f%%') 
# 确保饼图是圆的(即x轴和y轴的比例相同)  
plt.axis('equal')
plt.show()

        执行上面的示例代码后,其输出如下。

散点图

        在下面的示例代码中,我们使用plt.scatter(x, y)函数创建了散点图。该函数接受两个参数:x和y坐标列表。然后,我们使用plt.title()、plt.xlabel()、plt.ylabel()函数为散点图添加了标题和轴标签。

import matplotlib.pyplot as plt
import numpy as np

# 生成一些随机数据
x = np.random.rand(30)
y = np.random.rand(30)

# 创建散点图
plt.scatter(x, y)

# 添加标题和轴标签
plt.title('Scatter Plot Demo')
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis')

plt.show()

        执行上面的示例代码后,其输出如下。

添加文本及矩形

        对于定制化需求,Matplotlib模块提供了大量的参数和API供用户自定义图形。比如:可以设置图形的标题、标签、颜色、线型、刻度等属性,也可以添加文本、散点、矩形等图形元素。

        在下面的示例代码中,我们首先使用plt.text函数添加了文本。然后,使用plt.Rectangle函数来创建一个矩形对象,并使用ax.add_patch函数将它添加到图形上。矩形的位置和大小由它的四个参数决定:左下角的x和y坐标、矩形的宽度和高度。另外,我们还可以设置矩形的颜色和线宽。最后,我们设置x和y轴的限制,以便全部的矩形都能被显示出来。

import matplotlib.pyplot as plt

x = [1, 3, 5, 7, 9]
y = [1, 9, 25, 49, 81]

plt.plot(x, y)

# 添加文本
plt.text(5, 36, 'CSDN', fontsize = 12)

# 添加矩形
fig, ax = plt.subplots()
rect = plt.Rectangle((3, 3), 6, 9, fill = True, edgecolor = 'red', linewidth = 2)
ax.add_patch(rect)

# 设置x和y轴的限制,以便显示全部的矩形
ax.set_xlim(0, 15)
ax.set_ylim(0, 15)

plt.show()

        执行上面的示例代码后,其输出如下。

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

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

相关文章

【试题021】C语言算术运算符例题

1.题目:表达式4.8-1/25%3的值是 ? 2.代码解析: //表达式4.8-1/25%3的值是?printf("%d\n", (4 - 1 / 2 5 % 3));//分析:多个运算符看优先级高低次序//根据口诀可知: /和%都排第三,和-排第四//所…

AutoSAR入门:应用背景及简介

1、应用背景 在我们现在的汽车行业里面,汽车电子的发展过程中,我们发现有一些新的趋势汽车电子系统的复杂性不断增长。 我们现在可以看到车辆有越来越多的功能,那么这些功能呢,也在往这个控制器上进行集中,比如说我们现…

修炼k8s+flink+hdfs+dlink(六:学习k8s)

一:增(创建)。 直接进行创建。 kubectl run nginx --imagenginx使用yaml清单方式进行创建。 二:删除。 kubectl delete pods/nginx 三:修改。 kubectl exec -it my-nginx – /bin/bash 四:查看。 …

【Leetcode每日一题 1726】「组合|哈希表」同积元组

2023.10.19 本题重点: 1.题目的理解,如何转化成一种组合问题 2.哈希表的使用 题目介绍: 给你一个由 不同 正整数组成的数组 nums ,请你返回满足 a * b c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元…

11. 机器学习 - 评价指标2

文章目录 混淆矩阵F-scoreAUC-ROC 更多内容: 茶桁的AI秘籍 Hi, 你好。我是茶桁。 上一节课,咱们讲到了评测指标,并且在文章的最后提到了一个矩阵,我们就从这里开始。 混淆矩阵 在我们实际的工作中,会有一个矩阵&am…

【计算机网络笔记】OSI参考模型基本概念

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

分布式存储 vs. 全闪集中式存储:金融数据仓库场景下的性能对比

作者:深耕行业的 SmartX 金融团队 张德敏 近年来随着金融行业的高速发展,经营决策者及监管机构对信息时效性的要求越来越高,科技部门面临诸多挑战。例如,不少金融机构使用数仓业务系统,为公司高层提供日常经营报表&am…

阿里云服务器x86计算架构ECS规格大全

阿里云企业级服务器基于X86架构的实例规格,每一个vCPU都对应一个处理器核心的超线程,基于ARM架构的实例规格,每一个vCPU都对应一个处理器的物理核心,具有性能稳定且资源独享的特点。阿里云服务器网aliyunfuwuqi.com分享阿里云企业…

InitializeComponent报错(提示不存在)

我是c#新手。为了解决这个问题,需要按照以下步骤进行。、 WPF应用(.NET Framework) 解决问题 首先,确保项目的类型为WPF应用(.NET Framework); 然后,代码的位置应正确处于项目的MainWindow.xaml.cs; 最后&#xff0c…

Deno 快速入门

目录 1、简介 2、安装Deno MacOS下安装 Windows下安装 Linux 下安装 3、创建并运行TypeScript程序 4、内置Web API和Deno命名空间 5、运行时安全 6、导入JavaScript模块 7、远程模块和Deno标准库 8、使用deno.json配置您的项目 9、Node.js API和npm包 10、配置IDE…

宏(预编译)详解

目录 一、程序的编译环境 二、运行环境 三、预编译详解 3.1预定义符号 3.2.1 #define 定义标识符 3.2.2 #define 定义宏 3.2.3#define替换规则 3.2.4 #和## 2)##的作用: 3.2.5宏和函数的对比 3.2.6宏的命名约定和#undef指令 一、命名约定: …

CCC数字钥匙设计【NFC】--通过NFC进行车主配对Phase3

1、车主配对流程介绍 车主配对可以通过车内NFC进行,若支持UWB测距,也可以通过蓝牙/UWB进行。通过NFC进行车主配对总共有5个Phase。本文档主要对Phase3进行介绍。 1) Phase0:准备阶段; 2) Phase1:启动流程&#xff1…

C语言中的3种注释方法

C语言中的3种注释方法 2021年8月28日星期六席锦 在用C语言编程时,常用的注释方式有如下几种: (1)单行注释 // … (2)多行注释 /* … */ (3)条件编译注释 #if 0…#endif (1)(2)在入门教程中比较常见。 对于(1) 【单行注释 // …】,注释只能显示…

将输入对象转换为数组数组的维度大于等于1numpy.atleast_1d()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将输入对象转换为数组 数组的维度大于等于1 numpy.atleast_1d() 选择题 使用numpy.atleast_1d()函数,下列正确的是? import numpy as np a1 1 a2 ((1,2,3),(4,5,6)) print("…

Dev-C++ 软件安装教程(附安装包下载)

Dev-C(123网盘)提取码:EoF8https://www.123pan.com/s/JRpSVv-dKnjv.html (软件包下载后,右键解压) 一、打开文件夹,双击“Dev-C” 二、软件安装,点击“OK” 三、点击“I Agree” 四、点击“Ne…

计算机视觉基础(5)——特征点及其描述子

前言 本文我们将学习到特征点及其描述子。在特征点检测中,我们将学习角点检测和SIFT关键点检测器,角点检测以哈里斯角点检测器为例进行说明,SIFT将从高斯拉普拉斯算子和高斯差分算子展开。在描述子部分,我们将分别学习SIFT描述子和…

49数码论坛系统设计与实现

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

浅析限流式保护器在低压配电系统中电气火灾的应用

安科瑞 华楠 【摘要】文章分析了低压配电系统短路的类型、原因及火灾危险性,并提出改善措施。 【关键词】:低压配电系统; 短路; 措施 0引言 随着人类进入现代文明社会,电气的普及深入千家万户,广泛应用于…

npm ERR! exited with error code: 128

1.遇到的问题 报错信息:npm ERR! E:\tools\Gitt\Git\cmd\git.EXE ls-remote -h -t https://github.com/nhn/raphael.git npm ERR! npm ERR! fatal: unable to access https://github.com/nhn/raphael.git/: OpenSSL SSL_read: Connection was reset, errno 10054 …

FPGA project : IIC_wr_eeprom

简介: 简单双向二线制,同步串行总线。 scl:串行时钟线,用于同步通讯数据。 sda:双向串行数据线。 物理层: 1,支持挂载多设备。 2,二线制。 3,每个设备有其单独的地…