Python3 Matplotlib展示数据

matplotlib 是一个 Python 库,用于创建各种类型的图表和可视化。它提供了一个类似于 MATLAB 的绘图界面,使用户能够轻松地绘制线图、散点图、直方图、饼图等各种图表类型。matplotlib 可以在 Python 脚本、IPython shell、Jupyter Notebook 等环境中使用,并且具有高度的定制性,用户可以调整图表的各个方面,如颜色、线条样式、标签等。因其功能强大且易于使用,成为了 Python 中最受欢迎的绘图库之一。

1.用Matplotlib展示简单图表

使用 NumPy 和 Matplotlib 库来生成一个包含正弦和余弦函数的简单图表。

代码示例:

import numpy as np  # 导入NumPy库并将其重命名为np
import matplotlib.pyplot as plt  # 导入Matplotlib库中的pyplot模块并重命名为plt# # 使用NumPy中的linspace函数生成从-π到π之间的256个等间距数据点并将其存储在变量X中
X = np.linspace(-np.pi, np.pi, 256, endpoint=True)  
# 使用NumPy中的cos函数和sin函数分别计算X中每个点的余弦值和正弦值,并将结果存储在C和S中
C,S = np.cos(X), np.sin(X)plt.plot(X,C)  # 绘制余弦函数,其中X作为横坐标,C为纵坐标
plt.plot(X,S)  # 绘制正弦函数,X作为横坐标,S为纵坐标plt.show()  # 显示绘制的图表

输出结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.用Matplotlib展示带标签的图表

第一个例子只是简单地展示了正余弦函数曲线和x,y坐标轴,接下来创建一个带图表标题、图表标签、坐标轴标签和图例的图表。

代码示例:

import numpy as np
import matplotlib.pyplot as plt
# 从Matplotlib中的字体管理器模块导入FontProperties类
from matplotlib.font_manager import FontProperties # 创建一个字体属性对象,指定字体文件的路径和大小,这里使用的是宋体字体,字号为14
font = FontProperties(fname=r"C:\\WINDOWS\\Fonts\\simsun.ttc", size=14)#C:\WINDOWS\Fonts#创建一个图形对象,并设置其大小为宽度8英寸,高度6英寸,分辨率为80像素/英寸。
plt.figure(figsize=(8,6), dpi=80)#创建一个网格,设置其编号为 1x1 的第一个图
plt.subplot(111)# 使用NumPy的linspace函数生成从-π到π之间的256个等间距的数据点,并将其存储在X中
X = np.linspace(-np.pi, np.pi,256, endpoint=True)
C,S=np.cos(X),np.sin(X)# 设置线条颜色为蓝色,线宽为1.0,线型为实线,并设置图例标签为'cos'
plt.plot(X,C,color='blue',linewidth='1.0',linestyle='-',label='cos')
# 设置线条颜色为绿色,线宽为1.0,线型为实线,并设置图例标签为'cos'
plt.plot(X,S,color='green',linewidth='1.0',linestyle='-',label='sin')# 设置 X 轴的范围为 -4 到 4
plt.xlim(-4.0,4.0)
## 设置X轴刻度的位置为-4到4的等间距刻度,共9个
plt.xticks(np.linspace(-4,4,9,endpoint=True))
# 设置Y轴的范围
plt.ylim(-1.0,1.0)
#设置Y轴的间距
plt.yticks(np.linspace(-1,1,5,endpoint=True))#设置一些图标
plt.title('二维坐标系',fontproperties=font)  # 设置图表的标题为'二维坐标系',并使用宋体
plt.xlabel('X轴',fontproperties=font)  # 设置x轴的标签为'X轴'
plt.ylabel('Y轴',fontproperties=font)  # 设置y轴的标签为'Y轴'
plt.legend(loc='upper left',frameon=True)  # 在图表中添加图例,位置在左上角,并显示图例框
plt.show()  #  显示绘制的图表

输出结果:

3.绘制散点图

使用 NumPy 生成两个包含随机数的数组X和Y,这些随机数服从均值为 0,标准差为1的正态分布(也称高斯分布)。然后使用 Matplotlib 的 scatter 函数将这些点绘制在二维平面上。

代码示例:

import numpy as np
import matplotlib.pyplot as pltn = 1024
X = np.random.normal(0,1,n)  # 使用NumPy的random.normal函数生成一个包含1024个随机数的数组X,这些随机数服从均值为0,标准差为1的正态分布
Y = np.random.normal(0,1,n)plt.scatter(X,Y)  # 使用scatter函数绘制散点图,X轴上为X数组的值,Y轴上为Y数组的值,它们一一对应一个散点。即将X和Y数组中的每个相同索引的元素看作一个点的坐标,并在二维平面上绘制出来
plt.show()  # 显示绘制的散点图

输出结果:

4.绘制柱状图

使用 NumPy 生成两组数据 Y1 和 Y2,并使用Matplotlib的bar函数将它们绘制成柱状图,同时在每个柱上方标注了对应的数值。

代码示例:

import numpy as np
import matplotlib.pyplot as pltn = 12  # 定义一个变量 n,表示要生成的数据点的数量
X = np.arange(n)  # # 用NumPy的 arange 函数生成一个包含n个元素的数组X,表示x轴上的坐标点,从0到11,[ 0  1  2  3  4  5  6  7  8  9 10 11]# 生成第一组数据Y1,这些数据通过将随机数乘以一个逐渐减小的系数来生成,从而使得数据逐渐减小。这里使用了NumPy的random.uniform函数生成位于[0.5, 1.0) 区间内的均匀分布的随机数
Y1 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)  Y2 = (1-X/float(n)) * np.random.uniform(0.5,1.0,n)# 使用Matplotlib的bar函数绘制第一组数据的柱状图,其中facecolor参数设置柱体颜色为浅蓝色,edgecolor参数设置边框颜色为白色
plt.bar(X, +Y1, facecolor='#9999ff', edgecolor='white')
# 使用bar函数绘制第二组数据的柱状图,但是Y2取负值,使得柱体朝向下方,并且设置柱体颜色为浅红色
plt.bar(X, -Y2, facecolor='#ff9999', edgecolor='white')for x,y in zip(X,Y1):  # 使用zip函数将X和Y1中的对应元素打包成元组,并遍历这些元组# 在每个柱状图的顶部绘制对应的数值,x+0.4是横坐标,y+0.05是纵坐标,'%.2f' %y表示将y的值格式化为保留两位小数的字符串,ha参数设置水平对齐方式为居中,va参数设置垂直对齐方式为底部plt.text(x+0.4, y+0.05, '%.2f' % y, ha='center', va= 'bottom')for x,y2 in zip(X,Y2):plt.text(x-0.05, -y2-0.1, '%.2f' % y2, ha='center', va= 'bottom')plt.ylim(-1.25,+1.25)  # 设置y轴的取值范围为-1.25到+1.25
plt.show()

输出结果:

5. 绘制函数 y = 1 / (1 + e^(-x)) 的曲线图

代码示例:

import numpy as np
import matplotlib.pyplot as plt# 使用NumPy的linspace函数生成一个从-30到30的等间距的包含多个点的数组x,这些点用于表示x轴上的坐标
x=np.linspace(start=-30,stop=30,endpoint=True)
y=1/(1+np.e**-x)  # 计算出Logistic函数的值plt.figure(figsize=(10,4))  # 大小为宽度10英寸,高度4英寸
plt.plot(x,y,color='red',linewidth=2)
plt.show()

输出结果:

以上内容总结自网络,整理不易,如有帮助欢迎转发,我们下次再见!

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

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

相关文章

Oracle中的模糊查询

在 Oracle 中,模糊查询指的是在查询数据时使用通配符来匹配模式,而不是精确匹配特定的值。常用的通配符包括 %(匹配任意字符)和 _(匹配单个字符),用于在 WHERE 子句中进行模糊匹配。 实现模糊查…

科技赋能冷链园区:可视化带来全新体验

应用图扑可视化技术,冷链园区能够更加直观地监控和管理资源,优化运作流程,提高运营效率与服务质量。

Python的pytest框架(6)--测试钩子(hooks)

在pytest中,测试钩子(hooks)是一组特定的函数,它们允许你在测试过程的不同阶段插入自定义的逻辑。这些钩子函数可以让你在测试开始、测试结束、测试失败等时刻执行特定的操作。 pytest提供了一系列的钩子函数,你可以通…

贪心算法学习四

例题一 解法(暴⼒解法 -> 贪⼼): 暴⼒解法: a. 依次枚举所有的起点; b. 从起点开始,模拟⼀遍加油的流程 贪⼼优化: 我们发现,当从 i 位置出发,⾛了 step 步…

怎么把webp文件转换为jpg?快来试试这四种转换方法!

怎么把webp文件转换为jpg?Webp是一种不常见的图片格式,这种格式在使用过程中有很多缺点,首先它的浏览器兼容性不是很强,这就代表大家无法随意进行网络传输,可能需要准备特定的操作才能进行,然后编辑webp的工…

查看服务器端口,如何查看服务器端口是多少并修改

查看服务器端口并修改内容是一个涉及网络管理和系统配置的专业任务。以下是一个详细的步骤说明,用于查看和修改服务器端口。 一、查看服务器端口 1. 使用命令行工具: - 对于Linux或Unix系统,可以使用netstat、lsof或ss等命令来查看端口状…

网络编程概述

网络编程是利用计算机网络进行数据交换和通信的过程,涉及不同主机间的数据传输与设备连接通信。 在现代数字化时代,网络编程已成为开发互联网应用不可或缺的技术。它不仅支撑着网页浏览、邮件传输等基础功能,还是实现复杂网络服务和应用的基…

Android中如何知道我使用的是 AndroidX 库还是 Support Library

在Android中,要确定你正在使用AndroidX库还是Support Library,你可以通过检查项目的依赖配置以及代码中的引用。以下是几种方法来确定这一点: 检查build.gradle文件: 在你的项目的build.gradle(Module: app&#xff09…

redis大key对持久化的影响

我在“redis持久化方式——AOF\RDB”中详细介绍了redis持久化的策略,一言蔽之,就是将数据库的内存数据保存在磁盘文件中,本文讲解大key对redis持久化的影响 什么是大key? redis中的数据以key——value形式存储,大key…

机器学习常见的sampling策略 附PyTorch实现

初始工作 定义一个模拟的长尾数据集 import torch import numpy as np import random from torch.utils.data import Dataset, DataLoadernp.random.seed(0) random.seed(0) torch.manual_seed(0) class LongTailDataset(Dataset):def __init__(self, num_classes25, max_sam…

信息量、香农熵、交叉熵、KL散度的意义

文章目录 1. 信息量2. 香农熵3. 交叉熵4. KL散度(Kullback-Leibler Divergence(Relative Entropy)) 1. 信息量 相关概念: 对于一个事件: 小概率 – > 大的信息量大概率 – > 小的信息量多个独立事件的信息量计算可以直接相加 表达公式&#xf…

开关阀(1):定位器与电磁阀的区别

气动阀门带电磁阀是控制气源开关的,如果装配阀门定位器即为调节型? 一般来说,电磁阀就是控制气源通断的,用于阀门快速的全开或全关,电磁阀是得电与失电是起开关作用。 定位器是控制气源压力的大小,控制阀门…

数据结构---二叉树的性质总结

第i层上的节点数 证明: 二叉树的最大节点数 证明: 第一层对应2^0个节点, 累加得到 这是一个等比数列 求和公式: 那么这里的n指的是一共有多少个相加 根据从b到a一共有b-a1个可推出 有(k-1)-01个相加 那么结果为: 叶节点与度为2的节点关系 证明: 假设二叉树的总节点数为 NNN…

解决动态权限路由页面刷新空白404

需要将任意路由 path: /:pathMatch(.*)* 从固定路由中提取出来,在刷新时,等待用户信息获取完毕,将动态路由和任意路由通过 router.addRoute() 重新添加到路由中 // 固定路由 export const constantRoute [ ... ]// 权限路由 export const …

主键的定义,理解

"主键"是数据库中的一个术语,用于标识数据库表中的每一条记录的唯一标识。主键的特点如下: 唯一性:每个表中的主键值必须是唯一的,这样每条记录都能被准确地识别和检索。不可更改性:一旦定义,主…

常数变易法求解非齐次线性微分方程

文章目录 常数变易法求解一阶非齐次线性微分方程常数变易法求解二阶非齐次线性微分方程例题 常数变易法求解一阶非齐次线性微分方程 对于一阶非齐次线性微分方程 y ′ p ( x ) y q ( x ) y p(x)y q(x) y′p(x)yq(x) 先用分离变量法求解对应的齐次方程 y ′ p ( x ) y 0…

SpelExpressionParser评估SpEL(Spring Expression Language)表达式的解析器

是Spring中用于解析和评估SpEL(Spring Expression Language)表达式的解析器,SpEL是一种强大且灵活的表达式语言,广泛用于Spring框架中,以便在运行时解析和评估表达式 主要功能 1.解析和评估表达式:spelExpressionParser可以解析复杂的表达式,并在运行时对其进行评估; 2.访问…

Linux时间子系统7:sleep timer接口定时实现

1、前言 之前的文章中介绍了Linux时间相关的内容,包括用户态/内核态的时间获取,时间的种类,时钟源等,本篇开始的后续几篇文章将介绍Linux系统关于定时相关的服务,这与之前的内容是高度相关的,本篇还是从应用…

SolidWorks科研版更快地开发产品创意

在当今竞争激烈的市场环境中,产品创新的速度和质量直接决定了企业的生死存亡。对于科研人员和设计师来说,如何能够快速、准确地实现产品创意的转化,是摆在面前的一大挑战。SolidWorks科研版作为一款功能强大的三维设计软件,为科研…

正则表达式之三剑客grep

正则表达式匹配的是文本内容,linux的文本三剑客 都是针对文本内容 grep 过滤文本内容 sed 针对文本内容进行增删改查 awk 按行取列 文本三剑客都是按行进行匹配。 grep grep 的作用就是使用正则表达式来匹配文本内容 选项: -m …