最近我开始学习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()
这是完整的代码,以上代码的输出如下:
我在哪里做错了,我怀疑price_date = pd.to_datetime(data['Date'])
这就是为什么我收到此错误的原因,但是可能还有其他原因。你能帮忙吗?
答案 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']