matplotlib-我在这里做错了什么?

时间:2019-06-26 12:19:52

标签: python matplotlib graph

最近我开始学习Matplotlib。我编写了我的代码之一,发现输出很奇怪。这是我的代码,下面是该代码的输出:

from matplotlib import pyplot as plt
import pandas as pd

plt.style.use('seaborn')    
data = pd.read_csv('C:/py/matplotlib/08-TimeSeries/data.csv')

price_date = pd.to_datetime(data['Date'])
data.sort_values('Date', inplace=True)    
price_close = data['Close']

plt.plot_date(price_date, price_close, linestyle='solid')    
plt.gcf().autofmt_xdate()
plt.tight_layout()
plt.show()

这是完整的代码,以上代码的输出如下:

enter image description here

我在哪里做错了,我怀疑price_date = pd.to_datetime(data['Date'])这就是为什么我收到此错误的原因,但是可能还有其他原因。你能帮忙吗?

2 个答案:

答案 0 :(得分:1)

您将price_date = pd.to_datetime(data['Date'])用于x轴,然后对data['Date']进行排序。我想这可能是您的问题(实际上不知道您的数据是什么样的)。试试:

from matplotlib import pyplot as plt
import pandas as pd

plt.style.use('seaborn')    
data = pd.read_csv('C:/py/matplotlib/08-TimeSeries/data.csv')

data['Date'] = pd.to_datetime(data['Date']) # Just change the column itself to datetime
data.sort_values('Date', inplace=True)    
price_close = data['Close'] # This is not actually necessary. You can just use date['Close']  in the plot_date below

plt.plot_date(data['Date'], data['Close'], linestyle='solid')    
plt.gcf().autofmt_xdate()
plt.tight_layout()
plt.show()

答案 1 :(得分:0)

您需要先对数据进行排序,然后再编写x轴数据(price_date)。

要获得所需的结果,请替换

price_date = pd.to_datetime(data['Date'])
data.sort_values('Date', inplace=True)    
price_close = data['Close'] 

使用

data['Date'] = pd.to_datetime(data['Date'])
data.sort_values('Date', inplace=True) 
price_date = data['Date']
price_close = data['Close']