Python3 Matplotlib展示数据

news2025/1/21 14:45:10

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 plt

n = 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 plt

n = 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.coloradmin.cn/o/1837697.html

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

相关文章

《梦醒蝶飞:释放Excel函数与公式的力量》3.3常用数学函数:AVERAGE

3.3常用数学函数:AVERAGE 在Excel中,AVERAGE 函数用于计算一系列数值的平均值。这个函数在数据分析中非常有用,因为它可以快速提供数值集的中心趋势。 1)基本语法: AVERAGE(range) 或者 AVERAGE(number1,[number2,...]) ran…

Jetpack Compose_Alignment对其+Arrangement排列

文章目录 1.Alignment 对齐1.1Alignment 对齐方式1.2AbsoluteAlignment 绝对对齐1.3BiasAlignment 偏差对齐1.4BiasAbsoluteAlignment偏差绝对对齐 2.Arrangement 排列2.1Arrangement 排列方式2.2Arrangement.Horizontal2.3Arrangement.Vertical 1.Alignment 对齐 1.1Alignmen…

Linux之旅: 基础知识点的终极指南

文章目录 1、Linux的目录结构2、ls命令3、管理文件和目录4、linux命令使用细节和技巧5、权限管理基本命令6、搜索命令7、管道符与重定向8、压缩和解压命令9、用户及vim编辑器10、用户和用户组管理一、Linux系统用户账号的基本管理二、Linux系统用户组的管理 1、Linux的目录结构…

大数据集群离线解析经纬度逆编码地址

背景 最近有个需要需求把经纬度解析为地址,那么通常解析地址市面上流行的方案就是调取百度、高德地图的接口进行解析。 难点 但是在用这个方案遇到一个问题就是企业认证的百度地图每天的逆编码解析为300w次,qps为100次/秒,对于日增上千万的…

2025年计算机毕业设计题目参考-简单容易

2025年最新计算机毕业设计题目参考-第二批 以下可以参考 企业员工薪酬关系系统的设计 基于SpringBoot在线远程考试系统 SpringBootVue的乡政府管理系统 springboot青年公寓服务平台 springboot大学生就业需求分析系统 基于Spring Boot的疗养院管理系统 基于SpringBoot的房屋交…

MySQL全解(基础)-(MySQL的安装与配置,数据库基础操作(CRUD,聚合,约束,联合查询),索引,事务)

MySQL安装与配置 1.数据库介绍 存储数据用文件就可以了,为什么还要弄个数据库? 文件保存数据有以下几个缺点: 文件的安全性问题 文件不利于数据查询和管理 文件不利于存储海量数据 文件在程序中控制不方便数据库存储介质: 磁盘 内存 为了…

从ITIL,CMMI到DevOps的实践与思考

点击进入IT管理资料库 在信息技术迅猛发展的今天,企业对IT运维和管理的要求越来越高。从最早的ITIL,到后来的CMMI,再到现在风靡全球的DevOps,每一个管理框架的出现都代表着一种新的思维和实践模式。ITIL帮助企业建立起系统的IT服…

微信小程序生命周期分为3种:页面级别,应用级别,组件级别

应用级别: onLaunch,onShow,onHide 页面级别:onLoad,onShow,onReady,onHide,onUnload 组件级别:

Webmin介绍与安装

文章目录 前言定义与功能:支持的操作系统:功能特性:插件与模块:使用场景:特点:安装与配置:总结 前言 Webmin是一款功能强大的基于Web的Unix系统管理工具 定义与功能: Webmin允许管…

HTTP性能测试工具-wrk

wrk性能测试工具详解 wrk是一款轻量级但功能强大的HTTP基准测试工具,主要用于在单机多核CPU环境下对HTTP服务进行性能测试。它通过利用系统自带的高性能I/O机制(如epoll、kqueue等),结合多线程和事件模式,能够产生大量…

SpringMVC系列五: SpringMVC映射请求数据

SpringMVC映射请求数据 💞获取参数值说明应用实例 💞获取http请求消息头💞获取JavaBean对象使用场景说明应用实例注意事项和细节 💞获取servlet api说明应用实例注意事项和细节 上一讲, 我们学习的是SpringMVC系列四: Rest-优雅的…

「51媒体」上海电视台媒体邀约专访怎么做?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 电视台专访通常会对一些热门话题,行业热点,或者新闻焦点,邀请嘉宾进行访谈。企业如果想要在电视台进行专访,通常要有合适的时机和选题。 下…

WordPress插件数据库批量替换内容工具插件

1、安装插件后,我们就可以在后台菜单看到工具操作界面 2、目前支持网站内容、标题、评论指定字符的快速替换 3、可以快速解决以往我们需要从MYSQL数据库命令替换的烦恼

YOLOv8旋转目标检测Yolov8n-obb详细实例+rolabelimg

一、Yolov8环境搭建 首先创建虚拟环境下载安装(其实就是yolov8的环境)再大概写一下步骤,没有想详细的看本人另外一篇:YOLOv8环境搭建_yolov8环境配置-CSDN博客 1、下载安装anaconda 2、创建虚拟环境 conda create -n my_yolov8…

JavaFX HTMLEditor

HTMLEditor控件是一个富文本编辑器,具有以下功能。 粗体斜体下划线删除线字体系列字体大小前景色背景颜色缩进项目符号列表编号列表对齐水平线复制文本片段粘贴文本片段 HTMLEditor类返回HTML字符串中的编辑内容。 创建HTML编辑器 import javafx.application.App…

python基础语法学习(工程向)-Stage3-数据可视化

json 是一种轻量的数据交互格式,可以按照json指定的格式去组织和封装数据,而本质上是一个带有特定格式的字符串。 功能 json是在各个编程语言中流通的数据格式,负责不同编程语言之间的数据传递和交互。 格式 json的格式要求较为严格&#…

github连接报本地

一、创建GIthub账号 这里默认大家已经创建好了并且有加速器,能正常上网,然后才能进行下面的操作。 二、创建ssh公钥 网址:Sign in to GitHub GitHub Sign in to GitHub GitHub 进入下面的界面: 然后创建新的密钥 三、官方文…

汽车IVI中控开发入门及进阶(二十九):i.MX6

前言: i.MX 6双/6Quad处理器集成多媒体应用处理器,是不断增长的多媒体产品系列的一部分,提供高性能处理,并针对最低功耗进行了优化。 i.MX 6Dual/6Quad处理器采用先进的quad-ArmCortex-A9内核,运行速度高达800 MHz,包括2D和3D图形处理器、1080p视频处理和集成电源管理。…

十、数据结构(图的基础)

文章目录 什么是图图的分类图算法的复杂度 图的模拟怎么储存一个图邻接矩阵:邻接矩阵的定义方式优劣分析 邻接表优劣分析实现代码 链式前向星实现代码优劣分析 图的遍历某个点的连通性拓扑排序1.拓扑排序的概念2.图的入度和出度3.基于 B F S BFS BFS的拓扑排序复杂度…

iptables配置NAT实现端口转发

加载防火墙的内核模块 modprobe ip_tables modprobe ip_nat_ftp modprobe ip_conntrack 1.开启路由转发功能 echo net.ipv4.ip_forward 1 >> /etc/sysctl.conf sysctl -p2、将本地的端口转发到本机端口 将本机的 7777 端口转发到 6666 端口。 iptables -t nat -A PR…