matplotlib学习笔记——入门

本文介绍了如何使用Matplotlib.pyplot绘制简单图形、创建子图、绘制散点图和曲线,以及如何设置颜色映射和保存图表。通过实例展示了如何利用plot、scatter、scatter()的color映射功能,以及如何划分画布创建多个子图。
摘要由CSDN通过智能技术生成

Matplotlib.pyplot是一些命令行风格函数的集合,使matplolib以类似matlab的方式工作。每个pylot函数对一幅图片(figure)做一些改动,如:创建新图片,在图片创建一个新的作图区域,在一个作图区域内画直线,给图添加标签(label)等。Matplotlib.pyplot是有状态的,亦即它会保存当前图片和作图区域的状态,新的作图函数会作用在当前图片的状态基础之上。接下来我们来看看如何使用。

(1)绘制简单图形

方法一:先生成一个画布,然后在这个画布上隐式的生成一个画图区域来进行画图

import matplotlib.pyplot as plt

input_value = ['little Prince', 'snow White', 'Cinderella', 'Thumbelina']  # 图形输入值
squares = [1, 4, 9, 16]  # 图形输出值
# plot根据列表绘制出有意义的图形,linewidth是图形线宽,可省略不写
plt.plot(input_value, squares, linewidth=5)
plt.title("Borrowing records", fontsize=24)  # 设置图标标题
plt.xlabel("bookName", fontsize=5)  # 设置x轴标签
plt.xticks(rotation=15, fontsize=5)  # 把x轴的字体旋转15度
plt.ylabel("number", fontsize=14)  # 设置y轴标签
plt.tick_params(axis='both', labelsize=14)  # 设置刻度标记的大小
plt.show()  # 打开matplotlib查看器,并显示绘制图形

运行结果:

方法二:先生成一个画布,然后在画布上,选定一个子区域画一个子图

import matplotlib.pyplot as plt

fig = plt.figure(num=1, figsize=(4, 4))  # 生成一个画布
ax = fig.add_subplot(111)  # 将画布分成1*1的子画布,并选中第一个子图进行操作
ax.plot([1, 2, 3, 4], [1, 2, 3, 4])
plt.show()

结果:

 画单个图的时候,ax.的效果看起来和plt.的效果差不多,但是后面修饰图片的时候,第二种方法比较方便。

 (2)创建子图

把一个画布分成几个区域来绘制几幅不同的图

import matplotlib.pyplot as plt

fig = plt.figure(num=1, figsize=(4, 4))  # 将画布分为2x2的分布
ax1 = fig.add_subplot(221)  # 选择2x2中第一个子画布进行操作
ax1.plot([1, 2, 3, 4], [1, 2, 3, 4])
ax2 = fig.add_subplot(222)  # 选择2x2中第二个子画布进行操作
ax2.plot([1, 2, 3, 4], [2, 2, 3, 4])
ax3 = fig.add_subplot(223)  # 选择2x2中第三个子画布进行操作
ax3.plot([1, 2, 3, 4], [1, 2, 2, 4])
ax4 = fig.add_subplot(224)
ax4.plot([1, 2, 3, 4], [1, 2, 3, 3])
plt.show()

运行结果:

 (2)散点图

 使用scatter()方法绘制散点图,传一个x和y的坐标,在该位置上绘制一个点

scatter()方法的参数可以选择颜色、设置标记央视以及透明度等,这里不展开描述,只是给大家展示基本使用操作,感兴趣的读者可以去查一下

import matplotlib.pyplot as plt

# 散点图
# 画一个点
plt.scatter(4, 24)  # 在坐标(2,4)上画一个点,图中蓝色的点
plt.scatter(1.5, 3, s=100)  # 在坐标(1.5,3)上描绘一个点,且笔画大小为100,图中黄色的点
# 画一系列的点
x_value = [1, 2, 3, 4, 5]
y_value = [1, 4, 9, 16, 25]
plt.scatter(x_value, y_value)  # 图中绿色的点
plt.show()

运行结果:

(3)绘制曲线

通过(2)中我们了解到了使用scatter()来绘制点的使用方法,我们在学习数学的时候,一条平滑的曲线就是由无数个点构成的,因此可以使用scatter()这个方法来绘制曲线

matplotlib中可以给散点图中的各个点指定颜色。默认为蓝色点和黑色轮廓,在散点图包含的数据点不多时效果很好。但绘制很多点时,黑色轮廓可能会粘在一起,所以需要在scatter()中将其轮廓设置为none

import matplotlib.pyplot as plt

x_value = list(range(1, 1001))  # 整数列表,从1到1001的整数,但不包括1001
y_value = [x**2 for x in x_value]  # x的值平方后作为y坐标的值 
# edgecoloe='none' 删除数据点的轮廓
plt.scatter(x_value, y_value, edgecolor='none', s=30)
# 设置坐标轴的取值范围,x轴的取值范围[0,1100],y轴的取值范围[0,110000]
plt.axis([0, 1100, 0, 110000])
plt.show()

运行结果:

(4) 颜色映射

将(3)中的第四行的代码,添加参数:c=y_value,cmap=plt.cm.Blues

将c设置成一个y值列表,并使用参数cmap告诉pyplot使用那个颜色映射,这些代码将y值较小的点显示为蓝色,将y值较大的点显示为深蓝色

plt.scatter(x_value, y_value, c=y_value, cmap=plt.cm.Blues, edgecolor='none', s=30)

运行结果:

 (5)保存图表

 在show()后面添加下面代码:

plt.savefig('squares_plot.png',bbox_inches='tight')

 第一个参数:给保存的图表文件命名,保存在和代码的同目录下

 第二个参数:将多余的空白区域裁剪掉,要保留空白区域则不用写这个参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值