我正在绘制天气数据的CSV文件,并且我在代码中导入了它,但我试图绘制它。下面是CSV数据的样本:绘制来自Numpy阵列问题的日期
12:00am,171,6,7,52,76,77.1,63.7,28.74,0.00,0.00,0.0,0,63.7,78.1,67.4,56.0,29.96
12:01am,192,4,6,52,76,77.1,63.7,28.74,0.00,0.00,0.0,0,63.7,78.1,67.4,56.0,29.96
12:02am,197,3,6,52,76,77.1,63.7,28.74,0.00,0.00,0.0,0,63.7,78.1,67.4,56.0,29.96
12:03am,175,3,6,52,76,77.1,63.7,28.73,0.00,0.00,0.0,0,63.7,78.1,67.4,56.0,29.96
12:04am,194,4,6,52,76,77.1,63.7,28.73,0.00,0.00,0.0,0,63.7,78.1,67.4,56.0,29.96
12:05am,148,5,6,52,76,77.1,63.7,28.73,0.00,0.00,0.0,0,63.7,78.1,67.4,56.0,29.96
无论如何,我想是在X轴上的时间,但我不能让它使用matplotlib绘制。我尝试了一种使用xticks的方法,并绘制了我的y值,但就是这样。它在我的X轴上给了我一条粗实线。
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
from matplotlib.dates import date2num
import datetime as DT
import re
data = np.genfromtxt('FILE.csv', delimiter=',', dtype=None, skip_header=3)
length = len(data)
x = data['f0']
y = data['f7']
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_title("Temperature")
ax1.set_xlabel('Time')
ax1.set_ylabel('Degrees')
#plt.plot_date(x, y)
plt.show()
leg = ax1.legend()
plt.show()
我错过了几个关键部分,因为我真的不知道从哪里去。我检查了我的numpy数组的数据类型,它一直说numpy.ndarray,我找不到一种方法将其转换为字符串或int值来绘图。这是一个24小时的CSV文件,我希望每30分钟左右打勾号。有任何想法吗?
[这个问题](http://stackoverflow.com/questions/ 1574088/plotting-time-in-python-with-matplotlib)是可能相关的。 –
试过了,但我得到了一堆错误,它从不绘制或输出数据。我试过这个:http://stackoverflow.com/questions/6974847/plot-with-non-numerical-data-on-x-axis-for-ex-dates,我在x轴上只有一条黑色的实线,可能是因为有600个刻度线。我将如何改变这一点? – user2551677
我已经成功地给了plt.plot()一个x坐标的日期时间对象列表,然后是y值的浮动列表。我不确定从一个numpy数组中得到什么方便的方法,或者如何真正控制刻度标记,但这至少可以给你一个图表。 – seaotternerd