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

【人工智能】——matplotlib教程

文章目录

  • 1.matplotlib简介
  • 2.基本绘图功能
    • 2.1给图形添加辅助功能
    • 2.2在一个坐标系中绘制多个图像
    • 2.3多个坐标系显示图像
  • 3.常见图像绘制

1.matplotlib简介

matplotlib 是一个用于创建二维图表和数据可视化的 Python 库,它提供了一种类似于 MATLAB 的绘图接口。matplotlib 可以用来绘制线图、散点图、柱状图、饼图等各种类型的图表,并且支持对图表的各种属性进行自定义设置,以及添加文本、注释、图例等元素。
我们可以通过指令来下载:pip install matplotlib
我么可以这样导入matplotlib模块:import matplotlib.pyplot as plt

图形的绘制流程:
第一步:创建画布plt.figure里面有两个参数,一个是figsize指定画布的大小(长和宽),一个是dpi指定画布的清新度

第二步:绘制图像plt.plot(x, y)默认是折线图

第三步:显示图像plt.show()

示例:显示上海一周的天气情况
在这里插入图片描述

2.基本绘图功能

2.1给图形添加辅助功能

示例:有标题、x轴名称、y轴名称
在这里插入图片描述

import matplotlib.pyplot as plt
import random
plt.rcParams['font.sans-serif']=['SimHei']    # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False    # 用来显示负号
#0.准备数据
x = range(60)
y = [random.uniform(15, 18) for i in x] #生成60个15-18之间的浮点数
#1.创建画布
plt.figure(figsize=(20, 8), dpi=100)
#2.绘制图像
plt.plot(x, y)
#2.1添加xy轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
#2.2修改xy轴坐标刻度显示,要求间隔都是5
plt.xticks(x[::5], x_ticks_label[::5]) #坐标刻度不可以直接通过字符串进行修改,即不可以去掉前面的那一串
plt.yticks(y_ticks[::5])
#3.图像显示
plt.show()

在这里插入图片描述

添加网格显示:plt.grid(True, linestyle="--", alpha=0.5)alpha表示透明度
在这里插入图片描述
添加标题、x、y轴描述信息

plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点-12点某城市温度变化图", fontsize=20) 

fontsize是为了可以让标题的字体更大一些
在这里插入图片描述
图像的保存plt.savefig("url")url是保存的路径;
注意:图像保存要在show之前。plt.show()会释放figure资源。

完整代码:

import matplotlib.pyplot as plt
import random
plt.rcParams['font.sans-serif']=['SimHei']    # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False    # 用来显示负号
#0.准备数据
x = range(60)
y = [random.uniform(15, 18) for i in x] #生成60个15-18之间的浮点数
#1.创建画布
plt.figure(figsize=(20, 8), dpi=100)
#2.绘制图像
plt.plot(x, y)
#2.1添加xy轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
#2.2修改xy轴坐标刻度显示,要求间隔都是5
plt.xticks(x[::5], x_ticks_label[::5]) #坐标刻度不可以直接通过字符串进行修改,即不可以去掉前面的那一串
plt.yticks(y_ticks[::5])
#2.3添加网格显示
plt.grid(True, linestyle="--", alpha=0.5)
#2.4添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点-12点某城市温度变化图", fontsize=20) 
#2.5图像保存
plt.savefig("./test.png")
#3.图像显示
plt.show()

2.2在一个坐标系中绘制多个图像

方法:多次plot
示例:我们在添加一个城市的温度变化

import matplotlib.pyplot as plt
import random
plt.rcParams['font.sans-serif']=['SimHei']    # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False    # 用来显示负号
#0.准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x] #生成60个15-18之间的浮点数
y_beijing = [random.uniform(1, 3) for i in x]
#1.创建画布
plt.figure(figsize=(20, 8), dpi=100)
#2.绘制图像
plt.plot(x, y_shanghai, label="上海")
plt.plot(x, y_beijing, color="r", linestyle="--", label="北京")
#2.1添加xy轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
#2.2修改xy轴坐标刻度显示,要求间隔都是5
plt.xticks(x[::5], x_ticks_label[::5]) #坐标刻度不可以直接通过字符串进行修改,即不可以去掉前面的那一串
plt.yticks(y_ticks[::5])
#2.3添加网格显示
plt.grid(True, linestyle="--", alpha=0.5)
#2.4添加描述信息
plt.xlabel("时间")
plt.ylabel("温度")
plt.title("中午11点-12点某城市温度变化图", fontsize=20) 
#2.5图像保存
plt.savefig("./test.png")
#2.6显示图例
plt.legend(loc="best")
#3.图像显示
plt.show()

在这里插入图片描述

图片风格:
在这里插入图片描述
显示图例:plt.legend(loc="best")参数如下:
在这里插入图片描述

2.3多个坐标系显示图像

方法:通过使用plt.subplots()

plt.subplots(nrow=,ncol=)

nrows,ncols表示几行几列,例如我们要绘制两个图像,就是nrows=1,ncols=2

他的返回值有两个:

  1. fig:图对象
  2. axes:返回相应数量的坐标系
import matplotlib.pyplot as plt
import random
plt.rcParams['font.sans-serif']=['SimHei']    # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False    # 用来显示负号
#0.准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x] #生成60个15-18之间的浮点数
y_beijing = [random.uniform(1, 3) for i in x]
#1.创建画布
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20,8), dpi=100)
#2.绘制图像
axes[0].plot(x, y_shanghai, label="上海")
axes[1].plot(x, y_beijing, color="r", linestyle="--", label="北京")
#2.1添加xy轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
#2.2修改xy轴坐标刻度显示,要求间隔都是5
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::5]) #有字符串的刻度必须要使用set_xticklabels
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::5]) #有字符串的刻度必须要使用set_xticklabels
#2.3添加网格显示
axes[0].grid(True, linestyle="-", alpha=0.5)
axes[1].grid(True, linestyle="--", alpha=0.5)
#2.4添加描述信息
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) 
#2.5图像保存
plt.savefig("./test.png")
#2.6显示图例
axes[0].legend(loc="best")
axes[1].legend(loc="best")
#3.图像显示
plt.show()

在这里插入图片描述

3.常见图像绘制

matplotlib可以绘制折线图、散点图、直方图、饼图等等。
折线图:plt.plot(x, y)
散点图:plt.scatter(x, y)
柱状图:plt.bar(x, width, align="center", color)x表示传入的数据,width表示柱状图的宽度,align表示每个柱状图的对齐方式,colors表示每个柱状图的颜色
直方图:plt.hist(x, bins=None)bins表示组距
饼图:plt.pie(x, labels=,autopct=,color)labels表示每部分的名称,autopct表示占比显示指定,colors表示每部分的颜色

示例:散点图的绘制(房屋面积与价格的关系)
在这里插入图片描述


http://www.mrgr.cn/news/58494.html

相关文章:

  • 鸿蒙ArkTS中的资源管理详解
  • 2024源鲁杯CTF网络安全技能大赛题解-Round1
  • 常用环境部署(二十二)——MySQL的数据库迁移到另一个机器上
  • 1024是什么日子
  • java spark解决文件读取乱码问题
  • 【Flutter】基础入门:Widgets
  • 广州企业管理咨询公司排名前十
  • 大尺寸反射式液晶显示模块行业分析:预计2030年全球市场规模将达到2,020.21百万美元
  • echarts给Y轴的不同轴线设置不同的颜色的样式
  • 【OpenAI】第二节(Token)关于ChatGPT的Token你了解多少?最全Token讲解过程!
  • SpringMVC8-HttpMessageConverter
  • 《企业自设2-软件测试》搭建locust环境+使用它搜索百度接口
  • 在Flutter中实现排行榜滑动阻尼效果
  • 大家都在用的HR招聘管理工具:国内Top5排名
  • 免费开源!语音识别平台让医疗对话更高效,沟通更准确
  • xtu oj 字母序列
  • 时间数据可视化基础实验(南丁格尔玫瑰图)——Python热狗大胃王比赛数据集
  • 网站建设中需要注意哪些安全问题?----雷池社区版
  • 达梦数据库基本操作指南:从表空间创建到触发器应用
  • K8S部署
  • 从设计到伴飞:数字孪生赋能航天航空新时代
  • 大模型日报|12 篇必读的大模型论文
  • 放电消纳负载是什么
  • 前端经典【面试题】持续更新HTML、CSS、JS、VUE、FLUTTER、性能优化等
  • 探索自然之美:SpringBoot驱动的安康旅游网站开发
  • 国标GB28181软件EasyGBS国标GB28181-2022平台视频监控方案