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,一经查实,立即删除!

相关文章

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

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

贪心算法学习四

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

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

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

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

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

机器学习常见的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…

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

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

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

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

正则表达式之三剑客grep

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

Ubuntu-基础工具配置

基础工具配置 点击左下角 在弹出界面中点击 以下命令都是在上面这个界面执行(请大家注意空格) 命令输入完后,回车键就是执行,系统会提示输入密码(就是你登录的密码) 1.安装net工具 :(ifconfi…

无需安装就能一键部署Stable Diffusion 3?

一键部署使用SD3?让你的创作更加便捷! 前言 厚德云上架SD3! 距离Stable Diffusion 3的上线已经有一阵时间了。从上线至今SD3也是一直好评不断,各项性能的提升也让它荣获“最强开源新模型”的称号。成为了AI绘画设计师们新的香馍馍。 可对于SD…

Mac用虚拟机玩游戏很卡 Mac电脑玩游戏怎么流畅运行 苹果电脑怎么畅玩Windows游戏

对于许多Mac电脑用户而言,他们经常面临一个令人头疼的问题:在虚拟机中玩游戏时卡顿严重,影响了游戏体验。下面我们将介绍Mac用虚拟机玩游戏很卡,Mac电脑玩游戏怎么流畅运行的相关内容。 一、Mac用虚拟机玩游戏很卡 下面我们来看…

删除重复文件如何操作?电脑重复文件删除教程分享:详细!高效!

在数字化时代,我们的电脑中往往存储着大量的文件,这些文件随着时间的推移可能会产生许多重复项。重复文件不仅占用了宝贵的硬盘空间,还可能导致文件管理的混乱。因此,定期删除重复文件是维护电脑健康和提高工作效率的重要步骤。本…

请问为什么下面的HTML代码没有显示内容?

请问下面的HTML程序为什么没有显示内容&#xff1f; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>HTML教程()</title> <script>function getTime() {var date new Date();var time date.toLocalString…

OSPF和RIP的路由引入(华为)

#交换设备 OSPF和RIP的路由引入 不同的网络会根据自身的实际情况来选用路由协议。比如有些网络规模很小&#xff0c;为了管理简单&#xff0c;部署了 RIP; 而有些网络很复杂&#xff0c;可以部署 OSPF。不同路由协议之间不能直接共享各自的路由信息&#xff0c;需要依靠配置路…

洗地机哪个品牌比较好?四款好用靠谱的优质洗地机推荐

随着现代生活节奏的加快&#xff0c;家庭清洁成了一项耗时且繁琐的任务。洗地机凭借其智能化和高效的清洁能力&#xff0c;越来越受到大家的青睐。然而&#xff0c;市场上各种品牌和型号琳琅满目&#xff0c;让人眼花缭乱。为了帮助大家在众多选择中找到心仪的产品&#xff0c;…

【话题】层出不穷的大模型产品,你怎么选?

大家好&#xff0c;我是全栈小5&#xff0c;欢迎阅读小5的系列文章&#xff0c;这是《话题》系列文章 目录 引言元宝体验产品介绍AI作画 文档总结AI超级产品文章推荐 引言 随着近日腾讯元宝APP的正式上线&#xff0c;国内大模型产品又添一员。 关于接连出现的“全能“大模型AI…

jfrog artifactory oss的下载地址

在这里记录下下载地址&#xff1a; https://releases.jfrog.io/artifactory/bintray-artifactory/org/artifactory/oss/jfrog-artifactory-oss/

Java 开发面试题精选:Mysql 一篇全搞定

在这里插入图片描述 前言 在高级Java开发工程师的面试中&#xff0c;MySQL作为常见的数据库技术&#xff0c;其掌握程度往往是评估候选人综合能力的重要组成部分。在这篇文章中&#xff0c;我精选了一些最可能被问到的与MySQL相关的面试题目&#xff0c;这些题目可以全面考察…

芯片验证 | FPGA 原型验证

更多完整内容访问&#xff1a;【芯片验证 | FPGA 原型验证】

数据分析-相关性

0、提高数据样本质量 首先是确保数据采集的准确性与可靠性&#xff0c;也就是如何降低数据误差 系统误差是由测量工具不精确和测量方法选择不当造成的。这类误差我们可以通过校准工具或者选择更合适的测量方法来消除&#xff1b;随机误差是由环境因素等外部不可控原因导致的&…