目录
一、前言
二、各类图
2.1、折线图
2.2、散点图
2.3、点线图
2.4、下三角线
2.5、点虚线
2.6、虚点线
2.7、绘制自己的学习曲线
三、多线
四、画布
五、直方图
一、前言
plt是深度学习的常用库之一,很多指标结果如AUC、F1、ROC等都是通过plt来实现。本篇文章主要记录plt的一些常见用法。
二、各类图
2.1、折线图
plt.plot([1, 2, 3, 4], [2, 4, 6, 8]) # 折线
plt.show()
横坐标为第一个列表,纵坐标为第二个列表
2.2、散点图
plt.plot([1, 2, 3, 4], [2, 4, 6, 8], 'o') # 散点
plt.show()
2.3、点线图
plt.plot([1, 2, 3, 4], [2, 4, 6, 8], 'o-') # 点线
plt.show()
2.4、下三角线
plt.plot([1, 2, 3, 4], [2, 4, 6, 8], 'v-') # 下三角线
plt.show()
2.5、点虚线
plt.plot([1, 2, 3, 4], [2, 4, 6, 8], 'o--') # 点虚线
plt.show()
2.6、虚点线
plt.plot([1, 2, 3, 4], [2, 4, 6, 8], 'o-.') # 虚点线
plt.show()
2.7、绘制自己的学习曲线
plt的横坐标和纵坐标都是由列表组成,我们可以通过函数对应将目标数字放入到列表中,如下代码所示
import matplotlib.pyplot as plt
time = [4*60+42, 5*60+26, 4*60+6, 1*60+58, 0, 0, 3*60+53, 1*60+59, 6*60+46, 7*60+37, 5*60+43, 2*60+31, 5*60+3, 5*60+43, 1*60+11, 8*60+5, 3*60+38, 5*60+47, 4*60+8, 6*60+9, 7*60+33, 1*60+21, 1*60+55, 3*60+58, 3*60+10, 4*60+38, 3*60+43, 1*60+34, 5*60, 4*60+37]
data = [12.25, 12.26, 12.27, 12.28, 12.29, 12.30, 12.31]
for x in range(1, 24):
y = '1.'+str(x)
print(y)
data.append(y)
plt.plot(data, time) # 折线图
plt.show()
三、多线
当我们在做实验时常常需要多种实验进行对比,那如何用plt实现多条线展示在同一个图上呢?
plt.plot([1, 2, 3, 4], [2, 4, 6, 8], 'o-.r', label='Line A') # 虚点线 红
plt.plot([1, 2, 3, 4], [2, 7, 8, 14], color='blue', marker='o', label='Line B') # 两条线
plt.title("Matplotlib Test Plot") # 标题
plt.xlabel("Xlabel") # x轴
plt.ylabel("Ylabel") # y轴
# plt.xlim(0, 5) # x轴范围
# plt.ylim(0, 5) # y轴范围
# plt.xticks(np.arange(0, 11, 2)) # 步长
plt.legend() # 显示线条
plt.show()
四、画布
fig = plt.figure() # 创建画布
ax1 = fig.add_subplot(2, 2, 1) # 画布分为2行2列 这个plt占第一个单元格
ax2 = fig.add_subplot(2, 2, 2) # 第二个单元格
plt.show()
五、直方图
data = [32, 48, 21, 100] # y
labels = ['Jan', 'Feb', 'Mar', 'Apr'] # x
# plt.bar([0, 1, 2, 4], [5, 6, 7, 8]) # 前者是位置,后者是y 直方图
plt.bar(np.arange(len(data)), data) # 横坐标填充
plt.xticks(np.arange(len(data)), labels) # 步长 转换为月份
plt.show()