python绘图总结

news2024/11/27 5:25:33

1 二维图像

1.1 二维曲线

plot(x, y, ls="-", lw=1.5, label=None)

  • x, y:横坐标和纵坐标
  • ls:颜色、点标记、线型列表,如 ls=‘r*-’ 表示红色实线、*形点,ls=‘g.’ 表示绿色散点
  • lw:线宽度
  • label:线标签
plot(x, y, color, marker, linestyle)

  • x, y:横坐标和纵坐标
  • color:颜色,取值:b(blue), g(green), r(red), c(cyan), m(magenta), y(yellow), k(black), w(white)
  • marker:标记形状,取值:. , o v ^ < > 1 2 3 4 s p * h H + x D d | _
  • linestyle:线型,取值:- – -. :
import numpy as np
import matplotlib.pyplot as plt

x=np.arange(0,12,0.3)
y1=np.sin(x)
y2=np.cos(x)

plt.figure()  #新建一个图像窗口
plt.rcParams['font.sans-serif']=['SimHei']  #正常显示标题中中文
plt.rcParams['axes.unicode_minus'] = False  #正常显示坐标轴中中文

plt.subplot(1,2,1)  #使用第1个窗格
plt.plot(x,y1,'r*-') #绘图
#plt.plot(x,y1,color='r',marker='*',linestyle='-') #和上面等价
plt.title("正弦曲线")  #标题
plt.xlabel('x轴')  #x轴命名
plt.ylabel('y轴')  #y轴命名
plt.grid()  #添加网格
plt.legend(['sinx'])  #显示图例

plt.subplot(1,2,2)  #使用第2个窗格
plt.plot(x,y1,'r*-',label='sinx')  #绘制正弦图像
plt.plot(x,y2,'g.--',label='cosx')  #绘制余弦图像
plt.title('正弦曲线、余弦曲线')  #标题
plt.legend()  #显示图例

img

1.2 二维散点图

scatter(x, y, s=20, c='b', marker='o', cmap, alpha)

  • x, y:横坐标和纵坐标
  • s:点大小
  • c:点颜色,取值:b(blue), g(green), r(red), c(cyan), m(magenta), y(yellow), k(black), w(white)
  • marker:点标记,取值:. , o v ^ < > 1 2 3 4 s p * h H + x D d | _
  • cmap:颜色图谱
  • alpha:透明度,取值:0~1,超过1时当1算,低于1时当0算
  • linewidths:边框宽度
import numpy as np
import matplotlib.pyplot as plt

size=100 
x=np.random.uniform(size=size)
y=np.random.uniform(size=size)
s=np.random.uniform(5,400,size=size)  #点大小
c=np.random.uniform(size=size)  #点颜色
lw=np.random.uniform(1,4,size=size)  #边框宽度
 
plt.figure()  #新建一个图像窗口

plt.subplot(1,2,1)  #使用第1个窗格
plt.scatter(x,y,s=s,c=c,alpha=0.5,linewidths=lw,edgecolors='m')  #绘制散点图

plt.subplot(1,2,2)  #使用第2个窗格
plt.scatter(x,y,s=s,c=c,cmap='rainbow',alpha=0.5)  #绘制散点图

img

cmap 为颜色图谱,取值如下: (见cmap设置颜色的参数)

img

1.3 图像修饰

  • figure( num, figsize, dpi ):新建一个空白图像窗口,num为窗口名字,figsize为窗口尺寸,dpi为分辨率
  • title( ):标题
  • xlabel( ):x轴标签
  • ylabel( ):y轴标签
  • xlim( xmin, xmax ):x轴图像显示范围
  • ylim( ymin, ymax ):y轴图像显示范围
  • axis( xmin, xmax, ymin, ymax ):设置x轴和y轴显示范围
  • xticks( ticks, labels ):x轴刻度标记,ticks为需要标记的坐标,labels为对应ticks的标签
  • yticks( ):y轴刻度标记,ticks为需要标记的坐标,labels为对应ticks的标签
  • vlines( x, ymin, ymax, colors=‘k’, linestyles=‘solid’, label=‘’ ):绘制垂直分割线
  • hlines( y, xmin, xmax, colors=‘k’, linestyles=‘solid’, label=‘’ ):绘制水平分割线
  • text( x, y, s ):说明文字,(x,y)为文字显示位置,s为文字内容
  • subplot( rows, cols, num ):多窗格绘图,rows表示行数,cols表示列数,num表示窗格序号
  • legend( labels ):显示图例,labels为各曲线的图例标签列表,若在plot()中已给标签,这里可以省略参数
  • grid():显示网格
  • show( ):显示图像
  • savefig( name, dpi ):保存图片,默认以png格式保存,dpi为分辨率
  • gca( ):获取坐标轴(axis)对象

这里仅介绍 xticks() 的用法:

import numpy as np
import matplotlib.pyplot as plt

x=np.arange(0,15.7,0.1)
y=np.sin(x)

plt.figure()  #新建一个图像窗口
plt.plot(x,y,'r.')  #绘图

ticks=np.arange(0,6)*np.pi
labels=['0π','1π','2π','3π','4π','5π']
plt.xticks(ticks,labels)  #x轴示数标记
plt.grid()  #显示网格

img

1.4 坐标轴控制

1.4.1 坐标轴刻度间隔

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.pyplot import MultipleLocator

x=np.arange(0,15.7,0.1)
y=np.sin(x)

plt.figure()  #新建一个图像窗口
plt.plot(x,y,'r.')  #绘图

ax=plt.gca()  #获取坐标轴(axis)对象
ax.xaxis.set_major_locator(MultipleLocator(3.14))  #设置x轴示数间隔
plt.grid()  #显示网格

img

可以看到,x 轴刻度为 3.14

1.4.2 坐标轴刻度格式

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import FormatStrFormatter

x=np.arange(0,15.7,0.1)
y=np.sin(x)

plt.figure()  #新建一个图像窗口
plt.plot(x,y,'r.')  #绘图

ax=plt.gca()  #获取坐标轴(axis)对象
ax.yaxis.set_major_formatter(FormatStrFormatter('%.1f'))  #设置y轴示数格式
plt.grid()

img

可以看到,y 轴刻度只显示1位小数。此方法也可以避免坐标轴示数有时候自动变成+e**的情况发生

2 三维图像

2.1 三维坐标轴对象(Axes3D

在绘制三维图像时,需要先创建三维坐标轴对象 Axes3D ,创建方法主要有以下2种:

方法一

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D  #虽然没有明确调用 Axes3D,也不能省略,否则会报错

fig=plt.figure()  #创建一个图像窗口
ax=plt.axes(projection='3d')  #创建三维坐标轴对象

方法二

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

fig=plt.figure()  #创建一个图像窗口
ax=Axes3D(fig)  #创建三维坐标轴对象

运行代码,可以看到创建了一个空的三维图像窗口,如下:

img

多窗格绘图

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D  #虽然没有明确调用 Axes3D,也不能省略,否则会报错

fig=plt.figure()  #创建一个图像窗口
ax=fig.add_subplot(rows,cols,num,projection='3d')  #添加一个三维子图

2.2 三维曲线

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

t=np.linspace(0,20,70)  #参数,生成[0,20]之间70个点
x=np.sin(t)
y=np.cos(t)
z=2*t

fig=plt.figure()  #创建一个图像窗口
ax=Axes3D(fig)  #创建三维坐标轴对象

ax.plot(x,y,z,'r*-')  #绘制3维曲线

img

2.3 三维散点图

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

size=150  #点个数
x=np.random.randint(0,30,size)
y=np.random.randint(0,30,size)
z=np.random.randint(0,30,size)

fig=plt.figure()  #创建一个图像窗口
ax=Axes3D(fig)  #创建三维坐标轴对象

s=np.random.randint(0,200,size)  #点大小
c=np.random.randint(0,256,size)  #点颜色
ax.scatter(x,y,z,s=s,c=c,alpha=0.8)  #绘制3维散点图

img

2.4 三维曲面

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
 
x=np.linspace(0,10,50)
y=np.linspace(0,9,45)
X,Y=np.meshgrid(x,y)  #生成格点,并将所有格点的x轴值和y轴值分别保存到 X 和 Y 中,X 和 Y 的维度:(45,50)
Z=np.sin(X)+np.cos(Y)  #每个格点对应的函数值,维度:(45,50)
 
fig=plt.figure()  #创建一个图像窗口
 
ax=fig.add_subplot(1,2,1,projection='3d')  #添加一个三维子图
ax.plot_surface(X,Y,Z,cmap='hot')  #绘制三维曲面,cmap为颜色图谱
 
ax=fig.add_subplot(1,2,2,projection='3d')  #添加一个三维子图
ax.plot_surface(X,Y,Z,cmap='rainbow')  #绘制三维曲面,cmap为颜色图谱

img

X,Y=np.meshgrid(x,y) 函数的作用是生成格点,并将所有格点的x轴值和y轴值分别保存到 X 和 Y 中,X 和 Y 的维度:(45,50) ,变量空间如下:

img

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
Python全套学习资料

在这里插入图片描述

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓
在这里插入图片描述

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

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

相关文章

ros2+在Ubuntu上安装gazebo

Binary Installation on Ubuntu(Ubuntu上binary方式安装gazebo) Harmonic binaries are provided for Ubuntu Jammy (22.04) and Ubuntu 24.04 (when its released). &#xff08;在Ubuntu22.04或者24.04上都是安装Harmonic版本的gazebo&#xff09;The Harmonic binaries are…

Repo代码仓库搭建

使用rockchip sdk二次开发&#xff0c;代码十几个G&#xff0c;都放在一个git仓库的话&#xff0c;每次git status要等好久&#xff0c;决定拆分一下&#xff0c;官方是用repo做代码管理的&#xff0c;我打算也搭建个类似开发环境。 1.首先在git服务器上创建一个manifest仓库&…

深度学习中常见的激活函数

前文介绍 我们在前面了解到了线性回归模型&#xff0c;其实我们可以把线性回归看成一个单个的神经元&#xff0c;它实际上就完成了两个步骤 1.对输入的特征的加权求和 2.将结果通过传递函数&#xff08;或者激活函数&#xff09;输出 这里我们提到了传递函数&#xff08;或者…

ESP32 核心转储闪存配置已损坏

问题描述&#xff1a;使用Platform 开发ESP32-S3 报错通过串口打印报错提示为核心闪存损失具体报错如下。 ELF file SHA256: 25c739c3d81d8f15 E (183) esp_core_dump_flash: Core dump flash config is corrupted! CRC0x7bd5c66f instead of 0x0 Rebooting... ESP-ROM:esp32s3…

如何去“面试”软件测试工程师?

站在用人单位的角度问这个问题&#xff0c;但是相信很多人搜到这个问题&#xff0c;目的是为了知道如何准备面试&#xff0c;以便拿到软件测试工程师的Offfer&#xff08;所以我会更多站在求职者的角度去解答这个问题&#xff09;。 但我们要清楚&#xff0c;找工作是出卖服务…

可能是全网最详细的线性回归原理讲解!!!

ps&#xff1a;此处的特征向量有别于线性代数中的特征向量&#xff0c;准确来讲这里的特征向量是一个样本的所有属性值。 用梯度下降慢慢逼近这个最小值点 本文图片来源于可能是全网最详细的线性回归原理讲解&#xff01;&#xff01;&#xff01;_哔哩哔哩_bilibili 可以结合…

汽车火花塞行业分析:全球市场需求量约为26.3亿个

在汽车日常保养里,更换火花塞算是比较常见的一种,爱车懂车的车主们都非常清楚火花塞对于汽车的重要性,可以说火花塞直接影响到发动机的运作,决定了汽车能否顺利启程。 火花塞(sparkplug)&#xff0c;俗称火咀&#xff0c;它的作用是把高压导线(火嘴线)送来的脉冲高压电放电&…

使用kali进行抓包以及aircrack-ng跑包和hashcat跑包

文章目录 一、连接无线网卡二、抓取TCP握手包三、aircrack-ng跑包和hashcat跑包1.aircrack2.Hashcat 四、其他 环境&#xff1a; VMware Workstation 16 Pro kali-linux-2023.1 64位 python3.9.13 RT3070-USB无线网卡 一、连接无线网卡 1.首先按下winr打开运行窗口 2.输入…

Nginx-nginx-1.18.0编译时默认包含哪些模块?nginx-1.18.0有哪些模块和配置语句,各有什么作用?

自己写的与Nginx有关的几篇重量级博文 详情请参见链接 https://blog.csdn.net/wenhao_ir/article/details/135023881 目录 01-如何查看 Nginx-nginx-1.18.0编译时默认包含哪些模块&#xff1f;02-如何查看Nginx有哪些自己可以手动设置添加或不添加的模块03-各配置语句和模块功能…

mybatis.interceptor.exception.SqLValidateException:Ilegal SQL::......

现象&#xff1a;⬇️ 描述&#xff1a;执行 SQL 没问题&#xff0c;应用代码报错 ⬇️ .mybatis.interceptor.exception.SqLValidateException&#xff1a;Ilegal SQL::SELECT voucherNo FROM voucher ORDER BY CAST(SUBSTRING(voucherNo FROM LOCATE(_, voucherNo) 1) AS U…

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑 ➕ 安装ubuntu虚拟机图形化 ➕ 解决MacOs主机和WmwareFusion/UTM 之间不能复制粘贴问题

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑 ➕ 安装ubuntu虚拟机图形化 ➕ 解决MacOs主机和WmwareFusion/UTM 之间不能复制粘贴问题 1. 前言1.1 系统说明1.2 Linux系统选择——提前避坑1.3 下载vmware_fusion1.3.1 官网下载1.3.2 注册 CAPTCHA验证码问题1.3.3 产品说明 1.…

【零基础入门Python】制作的简单计算器程序

✍面向读者&#xff1a;所有人 ✍所属专栏&#xff1a;零基础入门Pythonhttps://blog.csdn.net/arthas777/category_12455877.html 制作简单计算器的Python程序 制作GUI计算器的Python程序 时间复杂性&#xff1a; 空间复杂性&#xff1a; 在这里&#xff0c;我们将制作一个…

2024年手把手教CleanMyMac X v4.14.6破解版安装激活图文教程

小编给您带来CleanMyMac X v4.14.6中文破解版&#xff0c;CleanMyMac X破解版是应用在MacOS上的一款Mac系统清理优化工具&#xff0c;使用cleanmymac x 中文破解版只需两个简单步骤就可以把系统里那些乱七八糟的无用文件统统清理掉&#xff0c;节省宝贵的磁盘空间。 CleanMyMac…

【C语言】cache和程序访问的局部性对程序性能的影响

文章目录 1&#xff0e;源程序比较其性能影响2&#xff0e;内存分配&#xff08;1&#xff09;静态存储区&#xff08;static&#xff09;&#xff1a;&#xff08;2&#xff09;栈区&#xff08;stack&#xff09;&#xff1a;&#xff08;3&#xff09;堆区&#xff08;heap&…

如何做搜索?如何做搜索优化?如何在搜索领域快速成长?

三年多的搜索研发经历&#xff0c;万亿级集群管理经历&#xff0c;集群优化搜索优化经历。将生产环境的集群&#xff0c;检索性能提升了数十倍。也遇到过大大小小的生产事故。在工作中有幸能够得到前谷歌中国首席架构陈老师的指导。在搜索方面&#xff0c;自己也积累了蛮多的经…

大模型专业术语语料如何采集!XPath高级技巧助力狩猎

最近采集大模型的某领域的专业术语语料&#xff0c;却发现一些网站的专业术语和名称解释深藏在一个 <div> 节点下的多个同级 <p> 节点中。这样的结构让爬虫在使用 .//text() 后获取文本时变得十分头疼&#xff0c;难以准确区分是术语还是解释。&#x1f613;。 不…

Backtrader 文档学习-Platform Concepts

Backtrader 文档学习-Platform Concepts 1.开始之前 导入backtrader &#xff0c;以及backtrader 的指示器、数据反馈的模块 。 import backtrader as bt import backtrader.indicators as btind import backtrader.feeds as btfeeds看看btind模块下有什么方法和属性&#x…

redis之五种基本数据类型

redis存储任何类型的数据都是以key-value形式保存&#xff0c;并且所有的key都是字符串&#xff0c;所以讨论基础数据结构都是基于value的数据类型 常见的5种数据类型是&#xff1a;String、List、Set、Zset、Hash 一) 字符串(String) String是redis最基本的类型&#xff0c;v…

Let‘s EasyV|年度作品征集:让数字孪生 看见设计的力量

转眼2023 已然迎来岁末&#xff0c;在这一年以来&#xff0c;关于「数字孪生」、关于「可视化」在遇到各类挑战的同时也在持续进化。在 2023 年&#xff0c;有越来越多人了解并投身于数字孪生可视化相关行业中来&#xff0c;持续制作打磨出更多更精彩的设计作品&#xff0c;并真…

ELF文件结构

ELF文件结构 前文结尾说到编译器编译源代码后生成的文件叫做目标文件&#xff0c;而目标文件经过编译器链接之后得到的就是可执行文件。那么目标文件到底是什么&#xff1f;它和可执行文件又有什么区别&#xff1f;链接到底又做了什么呢&#xff1f;接下来&#xff0c;我们将探…