如何在Python中将日期列绘制为x轴和y轴上的数据

时间:2015-08-21 10:07:47

标签: python date csv matplotlib plot

我在csv文件中有以下表格的数据:

date    unepmloyment    inflation
01-01-1948  3.4 2.2
01-02-1948  3.8 2.05
01-03-1948  4   1.5
01-04-1948  3.9 1.82
01-05-1948  3.5 2.06
01-06-1948  3.6 2.07
01-07-1948  3.6 2.17
01-08-1948  3.9 2.03
01-09-1948  3.8 1.52
01-10-1948  3.7 1.4
01-11-1948  3.8 1.1
01-12-1948  4   0.64
01-01-1949  4.3 0.33
01-02-1949  4.7 0.24

我想在x轴上绘制日期列,在y轴上绘制与给定数据日期对应的其他两列。

我的代码:

import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt

my_data = pd.read_csv('my_file.csv', index_col = 1) 
array_data = np.array(my_data)
y = array_data[:,2] 
x = array_data[:,0] 
plt.plot(x, y, color='black', linestyle=':', label='something something')    
plt.show()

因为我是编程新手,所以可以帮助。

2 个答案:

答案 0 :(得分:2)

以下内容应该可以使用pandas内置DataFrame.plot()命令。

对于您的数据,您可能需要告诉read_csv您的日期是第一天(默认是第一个月):

import pandas as pd 
import matplotlib.pyplot as plt

my_data = pd.read_csv('my_file.csv',dayfirst=True,index_col=0)
my_data.plot()

plt.show()

enter image description here

答案 1 :(得分:2)

尝试解析日期并使用pandas绘制完整的数据框:

import pandas as pd 
import matplotlib.pyplot as plt

my_data = pd.read_csv('test.csv',parse_dates=['date'],index_col=['date'],dayfirst=True)

my_data.plot(linestyle=':') 

plt.show()

我回来了:

enter image description here