【python数据分析05】——matplotlib绘图基础语法

news2024/12/28 5:31:01

matplotlib绘图基础语法

  • 前言
  • 1 pyplot基础语法
    • 1.1 创建画布与创建子图
    • 1.2 添加画布内容
    • 1.3 保存与显示图形
    • 1.4 设置pyplot的动态rc参数

前言

matplotlib中应用最广的是matplotlib.pyplot模块,这个模块是一个命令风格函数的集合。

1 pyplot基础语法

大部分pyplot图形绘制遵循一个流程,使用这个流程可以完成大部分图形的绘制。pyplot绘图流程主要分为3个部分,如下所示:
在这里插入图片描述

1.1 创建画布与创建子图

这一部分主要作用是构建出一张空白画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。当只需要绘制一幅简单的图形时,这部分内容可以省略。
pyplot创建画布与选中子图的常用函数如下

函数名称作用
plt.figure创建一个空白画布,可以指定画布大小、像素
figure.add创建并选中子图,可以指定子图的行数、列数和选中图片的编号

1.2 添加画布内容

这是绘图的主体部分。添加标题、坐标轴名称、会议图形等是并列的,没有先后顺利。但是添加图例一定要在绘制图形之后。各类标签如下所示:

函数名称作用
plt.title标题,可指定标题的名称、位置、颜色、字体大小等参数
plt.xlabel添加x轴名称,可以指定位置、颜色、字体大小等参数
plt.ylabel添加y轴名称,可以指定位置、颜色、字体大小等参数
plt.xlim指定x轴范围,只能确定一个数值区间,而无法使用字符串标识
plt.ylim指定y轴范围,只能确定一个数值区间,而无法使用字符串标识
plt.xticks指定x轴刻度的数目与取值
plt.yticks指定y轴刻度的数目与取值
plt.legend指定当前图形的图例,可以指定位置、颜色、字体大小等参数

1.3 保存与显示图形

函数名称作用
plt.savefig保存绘制的图像,可以指定图形的分辨率、边缘的颜色等参数
plt.show在本机显示图形

不含子图绘制的标准绘图流程示例

import numpy as np
import matplotlib.pyplot as plt
## %matplotlib inline表示在行中显示图片,在命令行运行报错
data = np.arange(0,1.1,0.01)
plt.title('lines') ## 添加标题
plt.xlabel('x')## 添加x轴的名称
plt.ylabel('y')## 添加y轴的名称
plt.xlim((0,1))## 确定x轴范围
plt.ylim((0,1))## 确定y轴范围
plt.xticks([0,0.2,0.4,0.6,0.8,1])## 规定x轴刻度
plt.yticks([0,0.2,0.4,0.6,0.8,1])## 确定y轴刻度
plt.plot(data,data**2)## 添加y=x^2曲线
plt.plot(data,data**4)## 添加y=x^4曲线
plt.legend(['y=x^2','y=x^4'])
plt.savefig('y=x^2.png')
plt.show()

输出:
在这里插入图片描述
包含子图绘制的示例

rad = np.arange(0,np.pi*2,0.01)
##第一幅子图
p1 = plt.figure(figsize=(8,6),dpi=80)## 确定画布大小
ax1 = p1.add_subplot(2,1,1)## 创建一个两行1列的子图,并开始绘制第一幅
plt.title('lines')## 添加标题
plt.xlabel('x')## 添加x轴的名称
plt.ylabel('y')## 添加y轴的名称
plt.xlim((0,1))## 确定x轴范围
plt.ylim((0,1))## 确定y轴范围
plt.xticks([0,0.2,0.4,0.6,0.8,1])## 规定x轴刻度
plt.yticks([0,0.2,0.4,0.6,0.8,1])## 确定y轴刻度
plt.plot(rad,rad**2)## 添加y=x^2曲线
plt.plot(rad,rad**4)## 添加y=x^4曲线
plt.legend(['y=x^2','y=x^4'])
##第二幅子图
ax2 = p1.add_subplot(2,1,2)## 创开始绘制第2幅
plt.title('sin/cos') ## 添加标题
plt.xlabel('rad')## 添加x轴的名称
plt.ylabel('value')## 添加y轴的名称
plt.xlim((0,np.pi*2))## 确定x轴范围
plt.ylim((-1,1))## 确定y轴范围
plt.xticks([0,np.pi/2,np.pi,np.pi*1.5,np.pi*2])## 规定x轴刻度
plt.yticks([-1,-0.5,0,0.5,1])## 确定y轴刻度
plt.plot(rad,np.sin(rad))## 添加sin曲线
plt.plot(rad,np.cos(rad))## 添加cos曲线
plt.legend(['sin','cos'])
plt.savefig('sincos.png')
plt.show()

输出:
在这里插入图片描述

1.4 设置pyplot的动态rc参数

pyplot使用rc配置文件来自定义图形的各种默认属性,被称为rc配置或rc参数。在pyplot中,几乎所有的默认属性都是可以控制的,例如视图窗口大小以及每英寸点数、线条宽度、颜色和样式、坐标轴、坐标和网络属性、文本、字体等。
默认rc参数可以在python交互式环境中动态更改。所有存储在字典变量中的rc参数,都被称为rcParams。rc参数在修改后,绘图时使用默认的参数就会发生改变。

调节线条的rc参数

x = np.linspace(0, 4*np.pi)## 生成x轴数据
y = np.sin(x)## 生成y轴数据
plt.plot(x,y,label="$sin(x)$")## 绘制sin曲线图
plt.title('sin')
plt.savefig('默认sin曲线.png')
plt.show()

输出:
在这里插入图片描述
修改rc参数后的图

plt.rcParams['lines.linestyle'] = '-.'
plt.rcParams['lines.linewidth'] = 3
plt.plot(x,y,label="$sin(x)$")## 绘制三角函数
plt.title('sin')
plt.savefig('修改rc参数后sin曲线.png')
plt.show()

输出:
在这里插入图片描述
线条常用的rc参数名称、解释如下:

rc参数名称解释取值
lines.linewidth线条宽度0——10之间取值,默认为1.5
lines.linestyle线条样式取“-、–、-.、:”4种。默认为-
lines.marker线条上点的形状取“o、D、h”等20种。默认为None
lines.markersize点的大小0——10之间取值,默认为1

其中,lines.linestyle参数取值及意义

lines.linestyle取值意义
-实线
-.点线
长虚线
短虚线

lines.marker参数取值及意义

lines.marker取值意义lines.marker取值意义
o圆圈.
D菱形s正方形
h六边形1*星号
H六边形2d小菱形
-水平线v一角朝下的三角形
8八边形<一角朝左的三角形
p五边形>一角朝右的三角形
,像素^一角朝上的三角形
+加号/竖线
NonexX

注意:由于pyplot字体并不支持中文字符的显示,因此需要通过设置font.sans-serif参数来改变绘图时的字体,使得图形可以正常显示中文。同时,由于更改字体后,会导致坐标轴的部分字体无法显示,因此需要同时更改axes.unicode_minus参数,如下所示。

## 无法显示中文标题
plt.plot(x,y,label="$sin(x)$")## 绘制三角函数
plt.title('sin曲线')
plt.savefig('无法显示中文标题sin曲线.png')
plt.show()

输出:
在这里插入图片描述

##设置rc参数显示中文标题
## 设置字体为SimHei显示中文
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False ## 设置正常显示符号
plt.plot(x,y,label="$sin(x)$")## 绘制三角函数
plt.title('sin曲线')
plt.savefig('显示中文标题sin曲线.png')
plt.show()

输出:
在这里插入图片描述

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

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

相关文章

Python文件管理器:一个基于wxPython的桌面应用

在当今的软件开发世界中&#xff0c;管理大量的源代码文件变得越来越重要。无论是个人项目还是大型团队协作&#xff0c;有一个强大而灵活的文件管理工具都可以大大提高工作效率。今天&#xff0c;我们要介绍一个基于Python和wxPython构建的文件管理器&#xff0c;它专门用于管…

GNS3 IOU: License section not found in iourc file /tmp/tmpj54abrhf/iourc

现象&#xff1a; License section not found in iourc file /tmp/tmpj54abrhf/iourc 解决方案&#xff1a; IOU 证书&#xff1a;&#xff08;直接复制进去即可&#xff09; [license] gns3-iouvm cd11acbc599f2364; gns3vm 73635fd3b0a13ad0;

记一个坑android Studio:Can‘t bind to local -1 for debugger

AndroidStudio 可编译,安装,设置管理 现象: 唯独 attach 或者调试时报错 Cant bind to local -1 for debugger 控制台日志: 2024-08-15 10:41:59,645 [ 9927] WARN - #com.android.ddmlib - * daemon not running; starting now at tcp:5037 2024-08-15 10:…

DRISSIONPAGE获取图书的封面并保存到本地

一、页面自动截图 二、最终结果 三、代码实现 from DrissionPage import ChromiumPage,ChromiumOptions co =ChromiumOptions().set_paths(browser_path=r"C:\Users\lenovo\AppData\Local\Google\Chrome\Application\chrome.exe") #这里指定浏览器 注意ChromiumOp…

【Oracle篇】统计信息和动态采样的深度剖析(第一篇,总共六篇)

&#x1f4ab;《博主介绍》&#xff1a;✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ &#x1f4ab;《擅长领域》&#xff1a;✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux&#xff0c;也在扩展大数据方向的知识面✌️…

广州南沙某工厂电力运维系统案例

一、引言 深圳拓扑未来基于物联网的电力运维系统将云计算、大数据与人工智能对采集的数据进行挖掘整合、共享交换&#xff0c;并以数字全息投影的信息技术手段将数据立体化呈现。满足用户监测众多电力回路运行状态和参数、配电室内环境温湿度、电缆及母线运行温度、现场设备或…

配置静态ip地址,也叫网络地址,linux安装tomcat,mysql,java的jdk,如何把java项目部署到linux上

3、linux 所需软件压缩包 4、防火墙的操作 5、Linux网络配置 接下来需要配置Linux系统的网络&#xff0c;这样才能保证软件能够正常安装上去 5.1 配置连接外网 进入etc/sysconfig/network-scripts目录&#xff0c;使用vi打开 ifcfg-ensXXX文件&#xff0c;进行编辑 cd /etc…

快速体验Ollama安装部署并支持AMD ROCm推理加速

序言 Ollama 是一个专注于本地运行大型语言模型&#xff08;LLM&#xff09;的框架&#xff0c;它使得用户能够在自己的计算机上轻松地部署和使用大型语言模型&#xff0c;而无需依赖昂贵的GPU资源。Ollama 提供了一系列的工具和服务&#xff0c;旨在简化大型语言模型的安装、…

阵列信号处理1_相控阵天线(CSDN_20240818)

与传统天线相比&#xff0c;相控阵天线的阵面是由许多阵元组成的&#xff0c;在这些阵元的基础上&#xff0c;相控阵天线可以利用一些精妙的算法在天线不旋转的条件下&#xff0c;自动形成波束并对准目标。通常&#xff0c;由相控阵天线形成的波束的质量要比普通天线波束的质量…

LeetCode //C - 319. Bulb Switcher

319. Bulb Switcher There are n bulbs that are initially off. You first turn on all the bulbs, then you turn off every second bulb. On the third round, you toggle every third bulb (turning on if it’s off or turning off if it’s on). For the $i^{th} $roun…

七彩玫瑰与彩虹玫瑰的花语探秘

一、什么是七彩玫瑰和彩虹玫瑰 七彩玫瑰和彩虹玫瑰并非自然界原生的花卉品种&#xff0c;而是通过人工手段精心培育和加工而成的独特花卉。它们的独特之处在于花瓣呈现出七种绚烂的颜色&#xff0c;宛如彩虹般绚丽多彩&#xff0c;令人眼前一亮。 七彩玫瑰和彩虹玫瑰通常是由白…

短链接系统设计方案

背景 需要设计一个短链接系统&#xff0c;主要功能主要有如下几点&#xff1a; ToB&#xff1a; 输入一个长链接&#xff0c;转换成短链接。这个短链接有时效性&#xff0c;可以设定指定过期时间。这个系统的每天会生成千万级别的短链接。数据具备可分析功能。 ToC&#xf…

xss.function靶场(hard)

文章目录 WW3源码分析源码 DOMPpurify框架绕过覆盖变量notifyjs作用域和作用链域构建payload WW3 源码 <!-- Challenge --> <div><h4>Meme Code</h4><textarea class"form-control" id"meme-code" rows"4"><…

MySQL实现SQL Server中UPDLOCK与READPAST组合功能

碰到一位同事求助解决消息中台一个线上的bug&#xff0c;具体描述如下&#xff1a; 首先有一张主表记录消息待发送的内容&#xff0c;一张子表记录本条消息的发送状态。若发送成功则将此条消息的发送状态修改为已发送并做逻辑删除。代码通过定时任务每2s轮询子表&#xff0c;如…

开源AI智能名片O2O商城小程序在社群团购中的创新应用与策略

摘要&#xff1a;随着移动互联网和社交电商的快速发展&#xff0c;传统企业纷纷寻求数字化转型以应对市场变化。然而&#xff0c;许多企业在转型过程中存在误区&#xff0c;认为仅仅是销售渠道的变更&#xff0c;而忽视了针对不同消费群体提供差异化产品和服务的重要性。本文旨…

MSO和WPS文档图标那些事儿

你以为这是MSO的文件图标吗&#xff1f;其实不然 以上图标才是出自MSO&#xff0c;但如果在电脑上安装WPS时勾选了关联文件类型&#xff0c;你的图标可能变成 2019WPS 新版WPS 即使你更改了默认打开方式&#xff0c;文件图标也还可能是WPS的 有一说一。MSO的设计尖锐感太强&a…

从零开始学cv-8:直方图操作进阶

文章目录 一&#xff0c;简介二、直方图匹配三、局部直方图均衡化四、彩色直方图均衡化4.1 rgb彩色直方图均衡化4.2 ycrb 彩色直方图均衡化 一&#xff0c;简介 在上一篇文章中&#xff0c;我们探讨了直方图的基本概念&#xff0c;并详细讲解了如何利用OpenCV来查看图像直方图…

王老师 linux c++ 通信架构 笔记(四)继续介绍 nginx 的编译,生成适合本平台的 nginx 可执行程序

&#xff08;16&#xff09; 继续介绍 nginx 的文件夹组成&#xff1a; 接着介绍 conf 目录 &#xff1a; 接着介绍 contrib 文件夹 &#xff1a; 接着介绍 html 文件夹 &#xff1a; 接着介绍 man 文件夹&#xff1a; 更正一下&#xff1a; 下图即为此帮助文件的内容&#…

电子电气架构---主流主机厂电子电气架构华山论剑(下)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

华为AR1220配置GRE隧道

1.GRE隧道的配置 GRE隧道的配置过程,包括设置接口IP地址、配置GRE隧道接口和参数、配置静态路由以及测试隧道连通性。GRE隧道作为一种标准协议,支持多协议传输,但不提供加密,并且可能导致CPU资源消耗大和调试复杂等问题。本文采用华为AR1220路由器来示例说明。 配置…