作者:lizhonglin
github: https://github.com/Leezhonglin/
blog: https://leezhonglin.github.io/
matplotlib绘图
1.绘制只含有单一曲线
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
%matplotlib inline
a1 = [20000,26000,30000,36000,45000,55000,56000,58000,57000]
index1 = [2010,2011,2012,2013,2014,2015,2016,2017,2018]
data1 = Series(data=a1,index=index1,name='beijing')
a2 = [6000,6500,7000,8000,10000,14000,17000,20000,25000]
index2 = [2010,2011,2012,2013,2014,2015,2016,2017,2018]
data2 = Series(data=a2,index=index2,name='chengdu')
# 绘制线形图
# 需要手动指定X,Y轴的数据
x = np.linspace(0,2*np.pi,100)
y = np.sin(x)
y1 = np.cos(x)
# 在一张图中绘制多条线,需要在一个cell中进行
# plt会自动引用一个上下文对象(离当前最近的画布对象)
# 如果写在一起,两个线型图才是使用同一画布
plt.plot(x,y)
plt.plot(x,y1)
如下图:
plt.plot(data1.index,data1.values)
plt.plot(data2.index,data2.values)
2.设置子画布(坐标系对象)
# 注意不是axis
axes = plt.subplot()
# axes对象就是当前的子画布对象,可以调用plot的调用方法
# 绘制线,是画布的方法,所以要使用子画布(坐标系)对象来实现
axes.plot(data1.index,data1.values)
axes.plot(data2.index,data2.values)
# 一个画布中可以存在对个子画布对象
# 如何设置子画布的位置
# subplot
#1.切分的行数
#2.切分的列数
#3. 按照前两者的切分方式画子画布的放置位置(从1开始)
# subplot 参数只是为了描述子画布位置的虚拟数据,并不是真正的把父画布试图进行切割
# 如果两个子画布有重叠的区间,后绘制的画布会覆盖先绘制的
# figure对象就是父画布对象, 可以在 figure方法你调整父画布的大小
axes1 = plt.subplot(3,3,1)
axes2 = plt.subplot(2,2,4)
x = np.linspace(0,3*np.pi,100)
figure = plt.figure(figsize=(8,5))
axes3 = plt.subplot(2,2,1)
axes3.plot(x,np.sin(x))
axes3.grid(axis='x',linewidth=1)
axes4 = plt.subplot(2,2,2)
axes4.plot(x,x)
axes4.grid(color='red')
axes5 = plt.subplot(223)
axes5.plot(x,np.cos(x))
axes5.grid(axis='y')
axes6 = plt.subplot(224)
axes6.plot(x,x**3)
axes6.grid()