今天学习了matplotlib中的简单使用,其实和以前项目中用到的matlab语句的plot,subplot差不多的。原始文件:
链接:https://pan.baidu.com/s/1_l3ZURqlaDi9-06hqfHRLQ 密码:nn80
import pandas as pd # 导入pandas库
import matplotlib.pyplot as plt # 导入pyplot模块
import numpy as np
unrate = pd.read_csv('UNRATE.csv') # 原始数据
# print(unrate)
# print(unrate['DATE'].head(12)) # 查看数据的前几条
unrate['DATE'] = pd.to_datetime(unrate['DATE']) # 将数据转换成datetime格式
# print(unrate.head(12))
# 画第一张图,用到的是前12条数据
plt.figure(1)
first_twelve = unrate[0:12]
plt.plot(first_twelve['DATE'], first_twelve['VALUE'])
# 画第二张图,这里只是把x轴的标签修改了一下
plt.figure(2)
plt.plot(first_twelve['DATE'], first_twelve['VALUE'])
plt.xticks(rotation=45)
# 画第三张图,
plt.figure(3)
plt.plot(first_twelve['DATE'], first_twelve['VALUE'])
plt.xticks(rotation=90) # 这里也是把x轴的标签样式修改为90
plt.xlabel('Month') # 修改x轴名称,和Matlab中是一样的
plt.ylabel('Unemployment Rate') # 修改y轴名称
plt.title('Monthly Unemployment Trends, 1948') # 为图片添加标题
# 画第四张图
fig = plt.figure(figsize=(5,3)) # 控制图片大小
ax1 = fig.add_subplot(2,1,1)
ax2 = fig.add_subplot(2,1,2)
ax1.plot(np.random.randint(1,5,5), np.arange(5))
ax2.plot(np.arange(10)*3, np.arange(10))
# 画第五张图,一张图里面画两条线
unrate['MONTH'] = unrate['DATE'].dt.month # 把数据转换成月份格式
unrate['MONTH'] = unrate['DATE'].dt.month
fig = plt.figure(figsize=(6,3)) # 控制图片大小
plt.plot(unrate[0:12]['MONTH'], unrate[0:12]['VALUE'], c='red')
plt.plot(unrate[12:24]['MONTH'], unrate[12:24]['VALUE'], c='blue')
# 画第六张图
fig = plt.figure(figsize=(10,6))
colors = ['red', 'blue', 'green', 'orange', 'black']
for i in range(5):
start_index = i*12 # 第一条线表示第一年,第二条线表示第二年
end_index = (i+1)*12
subset = unrate[start_index:end_index]
plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i])
# 画第七张图
fig = plt.figure(figsize=(10,6))
colors = ['red', 'blue', 'green', 'orange', 'black']
for i in range(5):
start_index = i*12
end_index = (i+1)*12
subset = unrate[start_index:end_index]
label = str(1948 + i) # 比第六张图,多了一个标签
plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i], label=label)
plt.legend(loc='best') # 将图例放在最合适的位置
# 画第七张图
fig = plt.figure(figsize=(10,6))
colors = ['red', 'blue', 'green', 'orange', 'black']
for i in range(5):
start_index = i*12
end_index = (i+1)*12
subset = unrate[start_index:end_index]
label = str(1948 + i)
plt.plot(subset['MONTH'], subset['VALUE'], c=colors[i], label=label)
plt.legend(loc='upper left') # 设置图例的位置
plt.xlabel('Month, Integer') # 设置x轴的名称
plt.ylabel('Unemployment Rate, Percent') # 设置y轴的名称
plt.title('Monthly Unemployment Trends, 1948-1952') # 设置图片名称
plt.show()
plt.savefig("seven.png")