python绘图总结

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 pltx=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 pltsize=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 pltx=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 MultipleLocatorx=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 FormatStrFormatterx=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 Axes3Dfig=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 Axes3Dt=np.linspace(0,20,70)  #参数,生成[0,20]之间70个点
x=np.sin(t)
y=np.cos(t)
z=2*tfig=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 Axes3Dsize=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 Axes3Dx=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.mzph.cn/news/230882.shtml

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

相关文章

波奇学Linux:进程等待

僵尸进程(Z状态)无法被kill指令杀死&#xff0c;通过进程等待杀掉它&#xff0c;解决内存泄漏问题&#xff08;进程处于僵尸态&#xff0c;仍然维护pcb结构体来解决问题&#xff09; 通过进程等待&#xff0c;获得进程退出情况 wait回收僵尸态进程 我们可以看到进程由五秒后子…

JavaScript高频题整理(附答案背诵版)

1、简述JavaScript中map和foreach的区别&#xff1f; map和forEach都是JavaScript数组的迭代方法&#xff0c;但它们之间存在一些关键区别。 返回值&#xff1a;map方法会返回一个新的数组&#xff0c;这个新数组是由原数组通过某个函数处理后的结果组成的。而forEach方法则没…

我们应该知道的 10 个高级 JavaScript 技巧

我们应该知道的 10 个高级 JavaScript 技巧 解构赋值 赋值解构是一种从数组或对象中提取值并将其分配给变量的简洁方法。 它简化了您的代码并提高了可读性。对于数组&#xff0c;可以使用括号表示法&#xff0c;对于对象可以使用大括号。 // 解构数组 const [firstItem, sec…

php hyperf 读取redis,存储到数据库

redis中排行榜中的数据 public function execute(string $date){$query ChannelConfig::query();$query->where(module_name, rank_reward);$rewardData $query->first();$rewards [];if( $rewardData ){$rewardContents $rewardData->content;foreach ($rewardC…

java.lang.NumberFormatException

1. 请解释NumberFormatException是什么&#xff1f; NumberFormatException是Java中的一个异常类&#xff0c;表示在将字符串转换为数字时出现了格式错误。当使用Integer.parseInt()、Double.parseDouble()等方法尝试将一个字符串转换为整数或浮点数时&#xff0c;如果该字符串…

VMware----基于 VMware 玩转 CentOS 虚拟机创建、克隆以及配置后台运行

查看原文 文章目录 一、安装 Vmware二、创建 CentOS7 系统的虚拟机三、克隆虚拟机四、设置虚拟机后台运行 一、安装 Vmware &#xff08;1&#xff09;打开VMware下载地址页面&#xff0c;滑动页面&#xff0c;找到如下界面&#xff0c;点击【下载】 &#xff08;2&#xff…

vscode如何开发微信小程序?JS与TS的主要区别?

要在 VS Code 中编写微信小程序代码并同步到 Git&#xff0c;需要安装以下插件&#xff1a; 1. 微信小程序插件&#xff08;WeChat Mini Program&#xff09;&#xff1a;此插件提供了微信小程序的语法高亮、代码提示、调试、上传等功能。 2. Git 插件&#xff08;GitLens、…

光伏电站的投资回报计算工具有哪些?

随着全球能源需求的增长和环境意识的提高&#xff0c;光伏发电作为一种可再生能源形式逐渐受到人们的关注。在短短几十年的时间里&#xff0c;光伏发电已经取得了显著的发展。光伏发电作为一项长期的投资&#xff0c;在建设时肯定会考虑投资回报问题。光伏电站的投资回报计算工…

本地电商平台商业模式 同城实体店引流获客方法

本地电商平台的商业模式通常是基于在线市场交易的。这样的平台允许本地商家在其上发布商品信息&#xff0c;消费者可以在平台上选择购买&#xff0c;并直接向卖家付款。商家可以通过平台获得更广泛的市场覆盖和销售机会&#xff0c;同时消费者也可以享受更加便利和多样化的购物…

RPC(3):HttpClient实现RPC之GET请求

1HttpClient简介 在JDK中java.net包下提供了用户HTTP访问的基本功能&#xff0c;但是它缺少灵活性或许多应用所需要的功能。 HttpClient起初是Apache Jakarta Common 的子项目。用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包&#xff0c;并且它支持 H…

Neural Network——神经网络

1.feature reusing——特征复用 1.1 什么是特征复用 回顾我们之前所学习的模型&#xff0c;本质上都是基于线性回归&#xff0c;但却都可以运用于非线性相关的数据&#xff0c;包括使用了如下方法 增加更多的特征产生新的特征&#xff08;多项式回归&#xff09;核函数 在本身…

CCF编程能力等级认证GESP—C++3级—20230611

CCF编程能力等级认证GESP—C3级—20230611 单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09;判断题&#xff08;每题 2 分&#xff0c;共 20 分&#xff09;编程题 (每题 25 分&#xff0c;共 50 分)春游密码合规检测 答案及解析单选题判断题编程题1编程题2 单选题…

Spring IOC 原理(二)

Spring IOC 原理 概念 Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系&#xff0c;利用 Java 语言的反射功能实例化Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上&#xff0c;还提供了 Bean 实例缓存、生命周期管理、 Bean 实…

JS中浅拷贝和深拷贝

本篇文章咱们一起来学习下JS中的浅拷贝和深拷贝&#xff0c;了解它们在内存上的区别&#xff0c;并掌握浅拷贝和深拷贝的常用实现方法。 引用赋值 在学习拷贝之前&#xff0c;咱们先来看一个常见的情景&#xff0c;如下图&#xff1a; 大家觉得这是深拷贝还是浅拷贝&#xff0…

2023 亚马逊云科技 re:lnvent 大会探秘: Amazon Connect 全渠道云联络中心

2023 亚马逊云科技 re:lnvent 大会探秘: Amazon Connect 全渠道云联络中心 前言一. Amazon Connect 介绍 &#x1f5fa;️二. Amazon Connect 使用教程 &#x1f5fa;️1.我们打开URl链接找到对应服务2.输入Amazon Connect选中第一个点击进入即可&#xff1b;3.在进入之后我们就…

【C++初阶】八、初识模板(泛型编程、函数模板、类模板)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【C初阶】七、内存管理 &#xff08;C/C内存分布、C内存管理方式、operator new / delete 函数、定位new表达式&#xff09; -CSDN博客 目录 一 . 泛型编程 二 . 函数模板 函数模板…

LeetCode算法练习top100:(10)贪心算法

package top100.贪心算法;import java.util.ArrayList; import java.util.List;public class TOP {//121. 买卖股票的最佳时机public int maxProfit(int[] prices) {int res 0, min prices[0];for (int i 1; i < prices.length; i) {if (prices[i] < min) {min price…

供应链管理:专业词汇积累

一、供应链管理专业词汇积累 序号词汇词汇英文解释1库存持有天数days on hand库存水平的度量标准&#xff0c;等于现有库存数量除以平均每日库存消耗量。2差异&#xff08;化&#xff09;延迟方法delayed differentiation一种供应链管理方法&#xff0c;即尽可能的保留和共享产…

Maven知识

文章目录 一、概念1、官方文档2、什么是Maven&#xff1f; 二、相关知识1、Maven生命周期1.1、clean1.2、default1.3、site 2、Pom文件3、Pom常用元素3.1、项目基本元素3.2、<properties\></properties\>3.3、pom继承相关3.4、依赖管理相关3.5、构建管理相关3.6、&…

使用ffmpeg将图片合成为mp4

首先在在图片文件夹输入cmd 这里确保已经安装ffmpeg并配置好环境变量。 然后这是我的文件夹目录&#xff1a; 将21张图片合成为mp4视频 这里使用如下命令&#xff1a; ffmpeg -framerate 1 -start_number 0 -i %d.png -c:v libx264 -pix_fmt yuv420p output.mp4 -framerat…