【人工智能】——matplotlib教程

文章目录

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轴名称

python 复制代码
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轴描述信息

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

fontsize是为了可以让标题的字体更大一些

图像的保存 plt.savefig("url")url是保存的路径;
注意:图像保存要在show之前。plt.show()会释放figure资源。

完整代码:

python 复制代码
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

示例:我们在添加一个城市的温度变化

python 复制代码
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()

python 复制代码
plt.subplots(nrow=,ncol=)

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

他的返回值有两个:

  1. fig:图对象
  2. axes:返回相应数量的坐标系
python 复制代码
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表示每部分的颜色

示例:散点图的绘制(房屋面积与价格的关系)

相关推荐
CodePlayer竟然被占用了7 小时前
没有生态的大模型不算前沿
人工智能
米小虾7 小时前
AI Agent 开发实战:2026年主流框架与MCP协议深度解析
人工智能·agent
米小虾7 小时前
2026年AI大模型半年报:从"参数军备"到"生态为王",谁在领跑下半场?
人工智能
m0_571186607 小时前
第五十周周报
人工智能
寰宇视讯7 小时前
解码AI未来 2026世界制造业大会人工智能与机器人展9月启幕
人工智能·机器人
冬奇Lab7 小时前
每日一个开源项目(第132篇):SkillSpector - 安装 AI Agent Skill 之前先扫一遍
人工智能·开源·agent
冬奇Lab7 小时前
如何让 AI Skill 质量有据可查?Benchmark 驱动的评测体系设计
人工智能·agent
腾科IT教育8 小时前
Spring AI Alibaba 向量(VectorStore)
人工智能·spring·microsoft
IT_陈寒9 小时前
React中useEffect依赖项这个坑我居然踩了三天
前端·人工智能·后端