当前位置: 首页 > news >正文

Matplotlib快速入门

目录

基本使用

解决中文乱码

一个坐标系绘制多个图像

多个坐标系绘制


基本使用

  • 什么是Matplotlib
    • 是专门用于开发2D图表(包括3D图表)
    • 以渐进,交互式方式实现数据可视化

  • 为什么要学习matplotlib
    • 可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法
    • 能将数据进行可视化,更直接的呈现
    • 使数据更加客观,更具说服力
# 图形绘制流程:
import matplotlib.pyplot as plt
# 1创建画布
plt.figure(figsize=(20,8),dpi=(100))
# figsize指定图形的长宽
# dpi指定图像的清晰度
# 2绘制图像
plt.plot([1,2],[10,20])
# 3显示图像
plt.show()
# 例子:折线图绘制与显示
import matplotlib.pyplot as plot
plt.figure(figsize=(20,8),dpi=100)
plt.plot([1,2,3,4,5],[10,20,30,40,50])
plt.show()
# 例子:折线图
import matplotlib.pyplot as plt
import randomx = range(60)
y = [random.uniform(15,18) for I in x]plt.figure(figsize=(20,8),dpi=100)
plt.plot(x,y)
plt.show()
# 添加自定义x,y刻度
import matplotlib.pyplot as plt
import random
from pylab import mpl# 防止中文乱码
mpl.rcParams["font.sans-serif"] = ["SimHei"]x = range(60)
y = [random.uniform(15,18) for i in x]
# 添加x,y轴刻度
x_ticks_label = ['11点{}分'.format(i) for i in x]
y_ticks = range(40)plt.figure(figsize=(20,8),dpi=100)
plt.plot(x,y)# 修改x,y轴坐标刻度显示,间隔为5
plt.xticks(x[::5],x_ticks_label[::5])
plt.yticks(y_ticks[::5])plt.show()
# 添加网格显示
# 添加网格显示,alpha表示透明度
plt.grid(True,linestyle="--",alpha=0.5)import matplotlib.pyplot as plt
import random
from pylab import mpl# 防止中文乱码
mpl.rcParams["font.sans-serif"] = ["SimHei"]x = range(60)
y = [random.uniform(15,18) for i in x]
# 添加x,y轴刻度
x_ticks_label = ['11点{}分'.format(i) for i in x]
y_ticks = range(40)plt.figure(figsize=(20,8),dpi=100)
plt.plot(x,y)# 修改x,y轴坐标刻度显示,间隔为5
plt.xticks(x[::5],x_ticks_label[::5])
plt.yticks(y_ticks[::5])
# 添加网格显示,alpha表示透明度
plt.grid(True,linestyle="--",alpha=0.5)
plt.show()
# 添加描述信息,x轴,y轴,标题
# 添加描述信息
plt.xlabel("时间",fontsize=20)
plt.ylabel("温度",fontsize=20)
plt.title("中午11点-12点某城市温度变化图",fontsize=20)import matplotlib.pyplot as plt
import random
from pylab import mpl# 防止中文乱码
mpl.rcParams["font.sans-serif"] = ["SimHei"]x = range(60)
y = [random.uniform(15,18) for i in x]
# 添加x,y轴刻度
x_ticks_label = ['11点{}分'.format(i) for i in x]
y_ticks = range(40)plt.figure(figsize=(20,8),dpi=100)
plt.plot(x,y)# 修改x,y轴坐标刻度显示,间隔为5
plt.xticks(x[::5],x_ticks_label[::5])
plt.yticks(y_ticks[::5])
# 添加网格显示,alpha表示透明度
plt.grid(True,linestyle="--",alpha=0.5)
# 添加描述信息
plt.xlabel("时间",fontsize=20)
plt.ylabel("温度",fontsize=20)
plt.title("中午11点-12点某城市温度变化图",fontsize=20)
plt.show()
# 图像保存
# 保存图像到指定路径
plt.savefig("test.png")
注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片
import matplotlib.pyplot as plt
import random
from pylab import mpl# 防止中文乱码
mpl.rcParams["font.sans-serif"] = ["SimHei"]x = range(60)
y = [random.uniform(15,18) for i in x]
# 添加x,y轴刻度
x_ticks_label = ['11点{}分'.format(i) for i in x]
y_ticks = range(40)plt.figure(figsize=(20,8),dpi=100)
plt.plot(x,y)# 修改x,y轴坐标刻度显示,间隔为5
plt.xticks(x[::5],x_ticks_label[::5])
plt.yticks(y_ticks[::5])
# 添加网格显示,alpha表示透明度
plt.grid(True,linestyle="--",alpha=0.5)
# 添加描述信息
plt.xlabel("时间",fontsize=20)
plt.ylabel("温度",fontsize=20)
plt.title("中午11点-12点某城市温度变化图",fontsize=20)
# 保存图片
plt.savefig("test.png")
plt.show()

解决中文乱码

# 解决中文乱码问题
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]# 有时候,字体更改后,会导致坐标轴中的部分字符无法正常显示,此  # 时需要更改axes.unicode_minus参数
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False

一个坐标系绘制多个图像

# 如何在一个坐标系中绘制多个图像?
多次ploty_beijing = [random.uniform(1,3) for I in x]
y_shanghai = [random.uniform(15,18) for I in x]plt.plot(x,y_beijing)
plt.plot(x,y_shanghai,color='r',linestyle='--')import matplotlib.pyplot as plt
import random
from pylab import mpl# 防止中文乱码
mpl.rcParams["font.sans-serif"] = ["SimHei"]x = range(60)
y = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]# 添加x,y轴刻度
x_ticks_label = ['11点{}分'.format(i) for i in x]
y_ticks = range(40)plt.figure(figsize=(20,8),dpi=100)
plt.plot(x,y)
plt.plot(x,y_beijing,color='r',linestyle='--')# 修改x,y轴坐标刻度显示,间隔为5
plt.xticks(x[::5],x_ticks_label[::5])
plt.yticks(y_ticks[::5])
# 添加网格显示,alpha表示透明度
plt.grid(True,linestyle="--",alpha=0.5)
# 添加描述信息
plt.xlabel("时间",fontsize=20)
plt.ylabel("温度",fontsize=20)
plt.title("中午11点-12点某城市温度变化图",fontsize=20)
# 保存图片
plt.savefig("test.png")plt.show()
# 显示图例
plt.plot(x,y_beijing,label="北京")
plt.plot(x,y_shanghai,label="上海")# 显示图例
plt.legend(loc="best")import matplotlib.pyplot as plt
import random
from pylab import mpl# 防止中文乱码
mpl.rcParams["font.sans-serif"] = ["SimHei"]x = range(60)
y = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]# 添加x,y轴刻度
x_ticks_label = ['11点{}分'.format(i) for i in x]
y_ticks = range(40)plt.figure(figsize=(20,8),dpi=100)
plt.plot(x,y,label="上海")
plt.plot(x,y_beijing,color='r',linestyle='--',label="北京")# 修改x,y轴坐标刻度显示,间隔为5
plt.xticks(x[::5],x_ticks_label[::5])
plt.yticks(y_ticks[::5])
# 添加网格显示,alpha表示透明度
plt.grid(True,linestyle="--",alpha=0.5)
# 添加描述信息
plt.xlabel("时间",fontsize=20)
plt.ylabel("温度",fontsize=20)
plt.title("中午11点-12点某城市温度变化图",fontsize=20)
# 保存图片
plt.savefig("test.png")
plt.legend(loc="best")plt.show()

多个坐标系绘制

# 多个坐标系实现绘制
import matplotlib.pyplot as plt
import random
from pylab import mpl# 防止中文乱码
mpl.rcParams["font.sans-serif"] = ["SimHei"]x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]# 创建画布
fig,axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=100)axes[0].plot(x,y_shanghai,label="上海")
axes[1].plot(x,y_beijing,color='r',linestyle='--',label="北京")
plt.show()
# 修改其他的模块的代码
import matplotlib.pyplot as plt
import random
from pylab import mpl# 防止中文乱码
mpl.rcParams["font.sans-serif"] = ["SimHei"]x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]# 创建画布
fig,axes = plt.subplots(nrows=1,ncols=2,figsize=(20,8),dpi=100)axes[0].plot(x,y_shanghai,label="上海")
axes[1].plot(x,y_beijing,color='r',linestyle='--',label="北京")# 添加x,y轴刻度
x_ticks_label = ['11点{}分'.format(i) for i in x]
y_ticks = range(40)# 修改x,y轴坐标刻度显示,间隔为5
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::5])# 添加网格显示,alpha表示透明度
axes[0].grid(True,linestyle="--",alpha=0.5)
axes[1].grid(True,linestyle="--",alpha=0.5)# 添加描述信息
axes[0].set_xlabel("时间")
axes[0].set_ylabel("温度")
axes[0].set_title("中午11点-12点某城市温度变化图",fontsize=20)
axes[1].set_xlabel("时间")
axes[1].set_ylabel("温度")
axes[1].set_title("中午11点-12点某城市温度变化图",fontsize=20)# 保存图片
plt.savefig("test.png")# 添加图例
axes[0].legend(loc=0)
axes[1].legend(loc=0)plt.show()
# 使用numpy绘制sin图像
import matplotlib.pyplot as plt
import numpy as np# 准备数组
x = np.linspace(-10,10,1000)
y = np.sin(x)# 创建画布
plt.figure(figsize=(20,8),dpi=100)# 绘制函数图像
plt.plot(x,y)# 添加网格显示
plt.grid()# 显示图像
plt.show()
http://www.lryc.cn/news/571613.html

相关文章:

  • 2D写实交互数字人:让AI形象拥有“真人温度“的技术革命
  • 《HTTP权威指南》 第1-2章 HTTP和URL基础
  • C#实现图片文字识别
  • 【Pandas】pandas DataFrame unstack
  • LVS+Keepalived高可用群集
  • 【请关注】真实案例pg及kong安装部署
  • CppCon 2017 学习:C++ in Academia
  • GNU Octave 基础教程(2):变量与数据类型详解(一)
  • 技术与情感交织的一生 (八)
  • Git中新创建分支是否为空?这可得视情况而定!
  • JVM-类加载机制
  • 论文笔记 <交通灯><多智能体>MetaLight:基于价值的元强化学习用于交通信号控制
  • 20.jsBridge多页面交互与原生事件监听冲突问题
  • 锂电池充电管理芯片XSP30 适用于2-3节串联锂电池升降压快速充电
  • 新发布的一款使用ReactNative新架构加载Svga动画的开源插件[android/ios]
  • 【解决方案】Java 11 报错 <javax.net.ssl.SSLException: Tag mismatch!>,Java 8 却没问题?
  • 二分K-means:让聚类更高效、更精准!
  • Alpine Docker 容器中安装包缓存与 C/C++ 运行问题
  • 2025年暑期在线实习项目分享
  • 专业音乐播放器分享,Foobar2000多格式解码的技术实现,界面自定义的实用技巧
  • [计算机网络] 网络的诞生:协议的认知建立
  • AndroidView的简单使用
  • 【第二章:机器学习与神经网络概述】01.聚类算法理论与实践-(3)DBSCAN 聚类算法
  • python学智能算法(十二)|机器学习朴素贝叶斯方法初步-拉普拉斯平滑计算条件概率
  • Java安全-常规漏洞问题(SQL注入,XXE,SSRF,RCE)
  • Linux系统移植10:uboot移植
  • Prompt+Agent+LLM:半导体炉管设备健康评估的落地实战
  • 开源 Arkts 鸿蒙应用 开发(三)Arkts语言的介绍
  • 腾讯云TCCA认证考试报名 - TDSQL数据库交付运维工程师(PostgreSQL版)
  • 字节跳动 AI 视频生成模型 Seedance 1.0 悄然超越 Google Veo 3