这是我第一次在这里提问。我对编程很陌生,也不是很有天赋,我目前正在做一个小程序,我试图根据日期绘制欧元和美元的价格,我遇到了一个无法在x轴上绘制日期的问题。我一直在网上寻找帮助和答案,但没有任何好运气。总之,到目前为止我的代码是:
j=1
dates = []
price = []
with open('EURUSD_day.csv', 'r') as f:
reader = csv.reader(f)
print (f)
for row in reader:
if j > 1:
dates.append(row[1])
dates.append(float(row[6]))
j = j + 1
import datetime as dt
dates = []
x = [dt.datetime.strptime(d, '%m/%d/%Y').date() for d in dates]
y = range(len(x))
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y'))
plt.plot
plt.gcf().autofmt_xdate
plt.show()
谢谢你的帮助!在
代码中有几个问题。实际上不仅仅是一对。首先声明
dates=[]
,并用从文件中读取的日期填充它,这样做也很奇怪!您可以将日期填写到如下所示的列表中:
[“字符串元素”,float,“String element”,float….]
然后您就忘记了这一点,因为您在
import
语句之后再次声明了一个新的空列表dates=[]
,然后使用一个生成器遍历这个空列表正在创建空的日期时间对象。最后你从来没有真正调用plot函数,因为
^{pr2}$你从不发送任何实际数据。你的图没有任何参数:
plt.plot([1,2,3,4])
。最后你又重复了同样的错误,因为您再也不会调用自动格式化日期的实际方法
plt.gcf().autofmt_xdate
。请确认您确实拥有继续下一步计划所需的一切。 这意味着:
striptime
解析日期,那么您将得到一个格式为%m/%d/%Y
:[01/1/2012, 01/2/2012...]
格式的日期列表striptime
解析日期之后,您将得到日期时间。日期时间物体!(有意义的对象列表)也可以使用
plt.plot_dates
函数来绘制它们,该函数为您处理大多数漂亮的日期格式。我强烈建议您从空闲开始,开始定义简短而清晰的小函数,并逐步实现完整的解决方案。希望对你有所帮助。
我不允许评论,因为在这个stackexchange上我还没有50个声誉。然而,这应该是一个评论,而不是一个答案,因为它不能真正回答你的问题。
你的代码有很多问题。首先,您实际上需要绘制数据:
你的plt.绘图行应该是这样的:
我不完全确定这是否可行,因为我认为pyplot需要x和y轴的数字,而您的x列表目前是字符串。这也意味着更改x轴的格式会有问题,因为DateFormatter期望的是一个datetime对象,而不是一个字符串。
忽略了以下语法错误:
^{pr2}$这不是有效的python代码。想必你是说下面这些?
无论如何,为什么不把这些转换成日期时间.日期当你从你的档案里读出来的时候?
相关问题 更多 >
编程相关推荐