python中如何使用matlplotlib画图,在一个张图里画多个图表?使用在图里画多个子图实现
matplotlib最早由2002年发起,目的在于在Python环境下提供MATLAB风格的绘图。matplotlib可以在IDE集成环境,或者Jupter notebook中进行画图。本文用图文、代码示例的方式,描述如何使用matplotlib制作交互式的图形,及如何在一个图片中绘制多个图形。
注:在notepad绘制交互式图形。需要使用%matplotlib notebook语句,这样才能进行交互也就是进行缩放等操作。
一、使用matplotlib绘制一个简单的图形
准备,先安装matplotlib库。先绘制一条直线,代码如下:
%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
data = np.arange(10)
print(data)
plt.plot(data)
这里matplotlib notebook,指明是在notebook下绘图;
创建了一个一维数组的对象data,内容为:[0 1 2 3 4 5 6 7 8 9]
最后使用plt.plot(data)进行绘制折现图,绘图如下:
二、使用matpoltlib在同一个图片中绘制多个图形
这里使用子图的功能进行绘制,步骤如下:
1.创建一个图片对象。
matplotlib绘制的图位于图片(Figure)对象中,使用:
fig = plt.figure()#创建一个图片对象,可以使用figsize选项设定图片的大小及长宽比。
2.使用add_sub创建一个或者多个子图
ax1=fig.add_subplot(2,2,1)#该参数中的"2,2"标明图像中包含的"2x2"个子图,"1"表示这是4个子图中的第一个子图。
同理,使用同样的语句添加第2,3个子图:
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
3.在子图上绘图
#分别在3个子图上绘画
#绘制折线图
ax1.plot(data)
#绘制直方图
ax2.bar(data,data)
#绘制横纵坐标互换的直方图
ax3.barh(data,data)
绘图结果输出如下:
4.保存图片
使用plt.savefig('test.jpg'),将图片保存为'test.jpg'。