matplotlib在同一坐标系上绘制多条曲线 及在多个子图上绘图

(作者:陈玓玏)

用matplotlib画图时,常常需要实现两类功能,一类是在一个坐标轴上画多条曲线,能够清楚地看到多条曲线的对比情况。另一种情况是在同一个窗口的不同子图上画图,多用于呈现不同内容的曲线,没有对比关系的曲线图。其实根本区别在于,是在同一对坐标轴上画图,还是在不同的坐标轴上画图。

一、同一坐标系上绘制多条曲线

首先自然是引入matplotlib包,这个包可以画散点图、线图、柱形图等等,是很好的数据可视化工具。其他的不多说,看注释。

import matplotlib.pyplot as plt
import numpy as np
#开启一个窗口,num设置子图数量,figsize设置窗口大小,dpi设置分辨率
fig = plt.figure(num=1, figsize=(15, 8),dpi=80) 
#直接用plt.plot画图,第一个参数是表示横轴的序列,第二个参数是表示纵轴的序列   
plt.plot(np.arange(0,1,0.1),range(0,10,1))
plt.plot(np.arange(0,1,0.1),range(0,20,2))
#显示绘图结果
plt.show()

二、在不同子图上绘图

import matplotlib.pyplot as plt
import numpy as np
#开启一个窗口,num设置子图数量,这里如果在add_subplot里写了子图数量,num设置多少就没影响了
#figsize设置窗口大小,dpi设置分辨率
fig = plt.figure(num=2, figsize=(15, 8),dpi=80)
#使用add_subplot在窗口加子图,其本质就是添加坐标系
#三个参数分别为:行数,列数,本子图是所有子图中的第几个,最后一个参数设置错了子图可能发生重叠
ax1 = fig.add_subplot(2,1,1)  
ax2 = fig.add_subplot(2,1,2)
#绘制曲线 
ax1.plot(np.arange(0,1,0.1),range(0,10,1),color='g')
#同理,在同一个坐标系ax1上绘图,可以在ax1坐标系上画两条曲线,实现跟上一段代码一样的效果
ax1.plot(np.arange(0,1,0.1),range(0,20,2),color='b')
#在第二个子图上画图
ax2.plot(np.arange(0,1,0.1),range(0,20,2),color='r')
plt.show()

画图在进行模型评估时很常用,在进行变量评估时也可以用,能够提前查看变量的分布情况,也可以查看模型预测结果的AUC曲线和KS曲线。

猜你喜欢

转载自blog.csdn.net/weixin_39750084/article/details/80919407
今日推荐