Numpy入门[2]——Matplotlib 基础

news2024/9/25 9:29:55

Numpy入门[2]——Matplotlib 基础

参考:

https://ailearning.apachecn.org/

Python直接使用plot()函数画图

使用Jupyter进行练习

在使用Numpy之前,需要了解一些画图的基础。

Matplotlib是一个类似Matlab的工具包,主页地址为

http://matplotlib.org

导入 matplotlib 和 numpy:

import numpy as np
import matplotlib.pyplot as plt

plot二维图

plot(y)
plot(x, y)
plot(x, y, format_string)

只给定 y 值,默认以下标为 x 轴:

# 等距分
x = np.linspace(0, 2*np.pi,50)
plt.plot(np.sin(x))
[<matplotlib.lines.Line2D at 0x25593113dc0>]


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8GBhphPF-1669946179150)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_4_1.png)]

给定 x 和 y 值:

plt.plot(x,np.sin(x))
[<matplotlib.lines.Line2D at 0x2559318d040>]

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vonmLHTi-1669946179152)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_6_1.png)]

多条数据线:

plt.plot(x, np.sin(x), x, np.sin(2*x))

[<matplotlib.lines.Line2D at 0x25593231d60>,
 <matplotlib.lines.Line2D at 0x25593231d90>]

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yUWXaRyq-1669946179153)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_8_1.png)]

使用字符串,给定线条参数:
image-20221128154653101

image-20221128154711826

plt.plot(x,np.sin(x),'r-^')
[<matplotlib.lines.Line2D at 0x255933e4b80>]

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ge4jhnKO-1669946179156)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_10_1.png)]

多线条:

plt.plot(x, np.sin(x), "b-o",x, np.sin(2*x),"r-^")
[<matplotlib.lines.Line2D at 0x255932d87f0>,
 <matplotlib.lines.Line2D at 0x255932d88b0>]

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZfzxppL0-1669946179159)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_12_1.png)]

scatter 散点图

scatter(x, y)
scatter(x, y, size)
scatter(x, y, size, color)

画二维散点图

plt.plot(x,np.sin(x),"bo")
[<matplotlib.lines.Line2D at 0x25592028ca0>]

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BYnNX7L1-1669946179160)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_15_1.png)]

可以使用 scatter 达到同样的效果:

plt.scatter(x, np.sin(x))
<matplotlib.collections.PathCollection at 0x25591e62940>

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-20UYQcLE-1669946179161)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_17_1.png)]

scatter函数与Matlab的用法相同,还可以指定它的大小,颜色等参数:

from numpy import random
# 产生随机数组
x = random.rand(200)
y = random.rand(200)
size = random.rand(200) * 30
color = random.rand(200)
plt.scatter(x, y, size, color)
# 显示颜色条
plt.colorbar()

<matplotlib.colorbar.Colorbar at 0x2558f559af0>

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EOBWPnOa-1669946179161)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_19_1.png)]

多图

使用figure()命令产生新的图像:

t = np.linspace(0, 2 * np.pi, 50)
x = np.sin(t)
y = np.cos(t)
plt.figure()
plt.plot(x)
plt.figure()
plt.plot(y)
[<matplotlib.lines.Line2D at 0x2559333b970>]

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-giRvyABB-1669946179162)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_21_1.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fpCfz158-1669946179162)(02Matlpotlib%E5%9F%BA%E7%A1%80_files/02Matlpotlib%E5%9F%BA%E7%A1%80_21_2.png)]

或者使用 subplot 在一幅图中画多幅子图:

subplot(row, column, index)
plt.subplot(1,2,1)
plt.plot(x)
plt.subplot(1,2,2)
plt.plot(y)
[<matplotlib.lines.Line2D at 0x2559344e4f0>]

在这里插入图片描述

标签

可以在 plot 中加入 label ,使用 legend 加上图例:

plt.plot(x, label='sin')
plt.plot(y, label='cos')
plt.legend()
<matplotlib.legend.Legend at 0x255946fd430>


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LblOKyhR-1669946179163)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_25_1.png)]
​

或者直接在 legend中加入:

plt.plot(x)
plt.plot(y)
plt.legend(['sin','cos'])
<matplotlib.legend.Legend at 0x255948c3640>

​![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y1LecGzc-1669946179164)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_27_1.png)]
​](https://img-blog.csdnimg.cn/14fd110533b64ad2b81d8cb882db403a.png)

坐标轴,标题,网格

可以设置坐标轴的标签和标题:

plt.plot(x,np.sin(x))
plt.xlabel("radians")
plt.ylabel("amplitude",fontsize="large")
plt.title('Sin(x)')
# 设置网格
plt.grid()

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ueZUo7sY-1669946179164)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_30_0.png)]

清除、关闭图像

  • 清除已有图像使用:clf()
  • 关闭当前图像:close()
  • 关闭所有图像:close('all')

从脚本中运行

在脚本中使用 plot 时,通常图像是不会直接显示的,需要增加 show() 选项,只有在遇到 show() 命令之后,图像才会显示。

直方图

从高斯分布随机生成1000个点得到的直方图:

plt.hist(np.random.randn(1000))
(array([  2.,   5.,  33., 147., 266., 298., 171.,  68.,   9.,   1.]),
 array([-4.06787487, -3.28558599, -2.50329712, -1.72100825, -0.93871938,
        -0.15643051,  0.62585836,  1.40814724,  2.19043611,  2.97272498,
         3.75501385]),
 <BarContainer object of 10 artists>)

​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nhQ2tHyV-1669946179165)(https://note-image-1307786938.cos.ap-beijing.myqcloud.com/typora/02Matlpotlib%E5%9F%BA%E7%A1%80_34_1.png)]

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

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

相关文章

梁建章:旅行重回全球时代主题 构建“创新与传承”大场景

近日&#xff0c;在“防疫二十条”等最新措施基础上&#xff0c;国内多地宣布优化调整防疫措施&#xff0c;旅游市场复苏节奏也有望加速推进。 12月2日&#xff0c;携程集团在澳门举办“与时聚进”2022全球合作伙伴峰会。携程集团联合创始人、董事局主席梁建章&#xff0c;携程…

JS中常用的Date内置对象&处理Date内置对象的一些方法

JavaScript 中的对象分为3种&#xff1a;自定义对象 、内置对象、 浏览器对象 内置对象就是指 JS 语言自带的一些对象&#xff0c;这些对象供开发者使用&#xff0c;并提供了一些常用的或是最基本而必要的功能 JavaScript 提供了多个内置对象&#xff1a;Math、 Date 、Array…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校教师科研能力评定系统40n60

要对当前自己的学校对于计算机毕业设计的要求以及严格程度有所了解&#xff0c;这个主要是借助上一届已经毕业的学长学姐了解一下&#xff0c;但是有一点要注意的是&#xff0c;对于每一届毕业生的毕业设计的处理&#xff0c;学校都有很大的调整&#xff0c;这一点尤其重要。其…

springboot基于微信小程序的社区居家养老互助服务管理平台设计与实现毕业设计源码062027

基于springboot微信小程序的社区居家养老互助系统 摘 要 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;微信小…

springboot毕业生跟踪调查管理系统毕业设计源码061528

springboot毕业生跟踪调查管理系统 摘 要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对毕业生跟…

使用Sinon和Rewire对JavaScript中的私有方法进行单元测试

我们曾经试图遵循良好的编程习惯&#xff0c;在创建和定义方法时尽可能按照“职责单一”和“开放-封闭”原则将那些没有必要暴露出来的方法定义为私有方法&#xff0c;但是在编写测试用例时又往往对这些设计原则嗤之以鼻&#xff0c;因为你会为无法编写测试这些私有方法的测试用…

OpenCV图像特征提取学习五,HOG特征检测算法

一、HOG向梯度直方图概述 向梯度直方图&#xff08;Histogram of Oriented Gradient, HOG&#xff09;特征是基于对稠密网格中归一化的局部方向梯度直方图的计算。此方法的基本观点是&#xff1a;局部目标的外表和形状可以被局部梯度或边缘方向的分布很好的描述&#xff0c;即使…

[附源码]计算机毕业设计springboot校园订餐系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Hive企业实战ORC表数据翻倍,颠覆你认知的Cluster by作用?

咱们玩开源和大数据领域的几乎天天和Exception和Error打交道&#xff0c;尤其是面对海量数据的存储计算&#xff0c;复杂业务场景的时候。 真正能让你学到东西的大数据都需要是符合大数据特点的数据&#xff0c;比如低价值密度&#xff0c;如何从一眼看不出价值的数据中挖掘出商…

[附源码]计算机毕业设计游戏论坛网站Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

C语言初学者必学必会的C语言必背100代码

对于C语言这门计算机语言&#xff0c;算是老生常谈了&#xff0c;现在就由我来给大家分享几个关于C语言的几个代码吧&#xff01;(如果有错的地方还望见谅) 1.入门级别hello&#xff0c;world #include<stdio.h> int main() { printf("Hello,world!\n"); …

基于PHP+MySQL员工电子考勤网站的设计与实现

民工电子考勤网站是信息时代的产物,它是管理人员的一个好帮手。有了它不再需要繁重的纸质登记,有了它管理员不再需要繁重的工作,一些员工信息,考勤信息等基本信息可以由管理人员及时的对信息进行查询、更新、修改和删除,方便简易,且时效性高。 随着信息技术的不断进步,运用于活…

C++11标准模板(STL)- 算法(std::set_difference)

定义于头文件 <algorithm> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 计算两个集合的差集 std:…

Maven的简单介绍

Maven 构件 <packaging> : pom、jar、ear、war以及maven-plugin,构建Maven之后所生成的文件类型&#xff0c;Pom本身不产生构件&#xff0c;用来作为依赖库。 pom类型常用于微服务中作为父Pom,通过 可以将子模块包含进来&#xff0c;共享父Pom的依赖&#xff0c; GAV坐标…

【数据库与事务系列】多数据源切换

分库分表 不光是管理多个数据源&#xff0c;是对sql的优化、改写、归并等一系列操作的解决方案。关注的是sql语句。以shardingSphere为例&#xff0c;虽然也支持跟sql无关的hint策略提供路由功能&#xff0c;但是在sql改写以及归并过程中&#xff0c;依旧对sql有限制。 多数据…

页面转变为灰色,如此简单

页面转变为灰色 网站变灰色 html标签 一、通过浏览器操作 在网页端按下 F12&#xff0c;打开开发者模式&#xff0c;用元素选择器定位到 HTML 标签上&#xff0c;在「样式」的面板中往下翻&#xff0c;就可以看到这样一段代码。 在html标签添加filter: grayscale(100%); 效…

LAS、CTC、RNN-T、NT、MoChA

LAS LAS是一个做语音识别的经典seq2seq模型&#xff0c;主要分为三个部分Listen、Attention、Spell Listen Listen部分就是一个encoder。 输入声学特征向量&#xff0c;提取信息、消除噪声&#xff0c;输出向量。 encoder可以是RNN 也可以是CNN。比较常见的是先用CNN&…

多元宇宙算法求解电力系统多目标优化问题(Matlab实现)【电气期刊论文复现与算例创新】

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f4dd;目前更新&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;电力系统相关知识&#xff0c;期刊论文&…

Shiro-SpringBoot (一)

前不久负责项目中刚好也使用了Shiro做权限控制&#xff0c;趁着空闲期想把之前做的整理一下。在日常项目开发中&#xff0c;权限认证是不可少的模块。比较常用的有Spring Security&#xff0c;或是轻量级的Apache Shiro。相对来说Shiro提供了认证、授权、加密、会话管理、与Web…

华为机试 - 羊、狼、农夫过河

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 羊、狼、农夫都在岸边&#xff0c;当羊的数量小于狼的数量时&#xff0c;狼会攻击羊&#xff0c;农夫则会损失羊。农夫有一艘容量固定的船&#xff0c;能够承载固定数量的动物。 要求求出不损失羊情况…