声明
本文涉及的代码基于python 3.6.5
numpy1.14.3
pandas 0.23.0
matplotlib 2.2.2
。
matplotlib是python中常用的图表绘制工具;pandas是常用的数据处理工具,关于pandas的使用可以参考我的这篇文章:Pandas基本操作与常用接口;numpy是常用的科学计算工具,关于numpy的使用可以参考我的这篇文章:NumPy基本操作与常用函数。
在使用numpy、pandas和matplotlib之前我们首先要导入相关模块:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
绘制简易折线图
现在我们有一个美国从1948年起每个年份每个月份的失业率的数据unrate.csv,数据只有两列,一列是DATE对应相应的月份,一列是VALUE就是相应的失业率。我们先用pandas把它导入进来
unrate = pd.read_csv('unrate.csv')
# 将DATE列数据由字符串转换为datetime类型
unrate['DATE'] = pd.to_datetime(unrate['DATE'])
print(unrate.head(12))
# DATE VALUE
# 0 1948-01-01 3.4
# 1 1948-02-01 3.8
# 2 1948-03-01 4.0
# 3 1948-04-01 3.9
# 4 1948-05-01 3.5
# 5 1948-06-01 3.6
# 6 1948-07-01 3.6
# 7 1948-08-01 3.9
# 8 1948-09-01 3.8
# 9 1948-10-01 3.7
# 10 1948-11-01 3.8
# 11 1948-12-01 4.0
然后我们利用这些数据先绘制一个简单的折线图:
first_twelve = unrate[0:12]
plt.plot(first_twelve['DATE'], first_twelve['VALUE'])
plt.show()
绘制出来的折线图如上所示,plot()方法的第一个参数为x坐标值,x参数是可选的,若没有设置,默认为[0, ..., N-1]
。第二个参数为y坐标值,该参数也可以是多个列数据,分别对应不同的数据集合。下面我们看一下当y为多个数据集合时的用法:
first_twelve = unrate[0:12]
second_twelve = unrate[12:24]
y = np.vstack((first_twelve['VALUE'], second_twelve['VALUE'])).T
plt.plot(first_twelve['DATE'].dt.month, y) # 横轴取值为每年的12个月份
plt.show()
对于y轴上的多个数据集,常用的写法其实是这样的:
first_twelve = unrate[0:12]
second_twelve = unrate[12:24]
plt.plot(first_twelve['DATE'].dt.month, first_twelve['VALUE'], color='red', marker='.', linestyle