我创建了一个脚本,可以在一个月内下载有关特定货币的信息,然后将其存储为.DAT文件。示例.DAT文件如下所示:
2015-11-19 4.2477
2015-11-18 4.2509
2015-11-17 4.2433
2015-11-16 4.2472
2015-11-13 4.2362
2015-11-12 4.2245
2015-11-10 4.2485
依此类推......因此,您会看到所有内容都以两列的形式存储。现在,问题是:我想从中制作一个图表。我试图使用PyX但不知何故它不能将日期放在x轴上。你知道如何从这两列(即.DAT文件)中绘制图形吗?提前谢谢!
答案 0 :(得分:0)
我会使用pandas和matplotlib。
为了方便起见,您需要在读入数据框之前在文件中插入标题行。
数据强>
Date xRate
2015-11-19 4.2477
2015-11-18 4.2509
2015-11-17 4.2433
2015-11-16 4.2472
2015-11-13 4.2362
2015-11-12 4.2245
2015-11-10 4.2485
<强>代码强>
import pandas as pd
import numpy as np
import matplotlib as plt
# Put the data in the clipboard
clipdf = pd.read_clipboard()
df = clipdf.set_index('Date')
plt.figure(); df.plot(); plt.legend(loc='best')
plt.show()
答案 1 :(得分:0)
PyX还没有正式的时间轴支持。但是,您可以使用以下代码使其工作。不幸的是,你必须自己设置刻度和短信。
import time, datetime
from pyx import *
from pyx.graph.axis import timeaxis
from pyx.graph import data
# read the data with the first column being strings
d = data.file("timeaxis.dat", date=1, value=2)
# recreate the data while converting the date column to datetime
d = data.points([[datetime.datetime(*map(int, date.split('-'))), value]
for date, value in zip(d.columns["date"], d.columns["value"])], x=1, y=2)
g = graph.graphxy(height=5, x=timeaxis.timeaxis(manualticks=[timeaxis.timetick(2015, 11, 10),
timeaxis.timetick(2015, 11, 12),
timeaxis.timetick(2015, 11, 14),
timeaxis.timetick(2015, 11, 16),
timeaxis.timetick(2015, 11, 18),
timeaxis.timetick(2015, 11, 20)],
texter=timeaxis.timetexter("%b %d")))
g.plot(d)
g.writePDFfile()
这将产生以下输出: