当前位置: 首页 > 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.lryc.cn/news/469043.html

相关文章:

  • 【c++ gtest】使用谷歌提供的gtest和抖音豆包提供的AI大模型来对代码中的函数进行测试
  • 使用Angular构建动态Web应用
  • 25届电信保研经验贴(自动化所)
  • 大数据-190 Elasticsearch - ELK 日志分析实战 - 配置启动 Filebeat Logstash
  • 不同类型的 LED 驱动电源在检测方法上有哪些不同?-纳米软件
  • android 生成json 文件
  • C++新增的类功能和可变参数模板
  • redo log 日志 与 undo log 日志工作原理
  • go语言结构体与json数据相互转换
  • jenkins 自动化部署Springboot 项目
  • 使用xml发送国际短信(smspro)【吉尔吉斯斯坦】
  • springmvc-springsecurity-redhat keycloak SAML2 xml实现
  • 【K8S系列】Kubernetes Pod节点CrashLoopBackOff 状态及解决方案详解【已解决】
  • Linux: Shell编程入门
  • python爬虫实战案例——抓取B站视频,不同清晰度抓取,实现音视频合并,超详细!(内含完整代码)
  • 容灾与云计算概念
  • 基于 Python 的自然语言处理系列(44):Summarization(文本摘要)
  • RabbitMQ安装部署
  • 智联招聘×Milvus:向量召回技术提升招聘匹配效率
  • unplugin-auto-import 库作用
  • 【Multisim14.0正弦波>方波>三角波】2022-6-8
  • vue3纯前端验证码示例
  • 招聘程序员
  • Android 判断手机放置的方向
  • Telegram机器人的手机部署
  • ffmpeg视频滤镜: 色温- colortemperature
  • Django+Vue全栈开发项目入门(二)
  • 【ubuntu改源】
  • SQLI LABS | Less-9 GET-Blind-Time based-Single Quotes
  • 【小白学机器学习24】 用例子来比较:无偏估计和有偏估计