我有一个包含 25 列和 90 行的 csv 文件。第一列采用日期格式,例如显示为 01-10-2014。其余列包含对应于这些日期的数字。第一行是每列的名称。我的计划是编写一个包含所有信息的代码,并让我可以灵活地将任意两列相互绘制为散点 xy 图。到目前为止,我已经在下面复制了我的代码。
如果我从 dtype 中删除 'weekly' 和 'f8' ,该代码可以正常工作。它在 X 轴上绘制日期,在 Y 轴上绘制第一列“每日”。我假设我可以像使用“每周”一样添加额外的列,如下所示。但是,我收到错误:
Traceback (most recent call last):
File "plot_dataset_second.py", line 10, in <module>
Date = [DT.datetime.strptime(key,"%d-%m-%Y") for (key, value) in data]
ValueError: too many values to unpack
样本数据:
Date Daily Installs Weekly Installs Mean Install Duration
01-10-14 153 153 47.71
02-10-14 630 783 51.9
03-10-14 50 833 49.94
04-10-14 973 1805 51.43
import numpy as np
import matplotlib.pyplot as plt
import datetime as DT
data= np.genfromtxt('dataset1_changed.csv', delimiter=',',
dtype={'names': ('Date', 'daily', 'weekly'),'formats': ('S10', 'f8', 'f8')} )
Date = [DT.datetime.strptime(key,"%d-%m-%Y") for (key, value) in data]
daily = [value for (key, value) in data]
weekly = [value for (key, value) in data]
#y = [value for (key, value) in data]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.grid()
fig.autofmt_xdate()
plt.plot(Date,daily,'b--o--')
plt.xlabel('Date')
plt.ylabel('Daily Count')
plt.title('Daily Count since February')
plt.show()