使用日期时间数据绘制图形时出现问题



我想使用日期时间格式的数据作为xaxis绘制一个图形,但是该过程持续非常长,超过30分钟仍然没有图形。但是一旦我在另一列中应用数据,图形将很快出现。所有数据的格式都是"列表"。 我对此感到困惑,因为它们都是相同的格式,为什么我不能使用日期时间格式作为 xaxis 绘制图形? 这是我的代码,我珍惜你所有的时间和帮助!

from matplotlib import pyplot as plt
import csv
names = []
x = []
y = []
names=[]
with open('all.csv','r') as csvfile: #this csv file contains over 16000 datas
plots= csv.reader(csvfile,delimiter=',')
for row in plots:
x.append(row[1]) #row1 is the datetime format data
y.append(row[2])
print(x,y)
plt.plot(x,y)
plt.show()

我的csv文件的行看起来像这样:

2016/05/02 10:47:45,14.1,20.1,N.C.,170.7,518.3,-1259,-12.61,375.8,44.92,13.76,92.74,132.6,38.86,165.3,170.9,311.5,252.3,501.2,447.2,378.4,35.48,7.868,181.2,

我希望第一列作为 xaxis 和下面的列作为 yaxis...

并且无论我如何更改 y 轴限制,y 轴都不会改变。

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df = pd.read_csv('all.csv')
x = df.iloc[:,1]
y = df.iloc[:,3]
x = pd.to_datetime(x)
plt.figure(num=3, figsize=(15, 5))
plt.plot(x,y)
my_y_ticks = np.arange(0, 40, 10)
plt.xticks(rotation = 90)
plt.show()

我还没有完全理解你对all the datas' format are list的意思,但我认为你可以使用这样的东西:

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv('all.csv')
x = df.iloc[:,0]
y = df.iloc[:,1]
x = pd.to_datetime(x)
plt.plot(x,y)
plt.show()

也许显示一些行可能很有用

编辑:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
df = pd.read_csv('all.csv')
x = df.iloc[:,0] 
y = df.iloc[:,1]
x = pd.to_datetime(x, format="%Y/%m/%d %H/%M/%S") #if the format is different, change here
fig, ax = plt.subplots()
ax.plot(x, y)
xfmt = mdates.DateFormatter("%Y/%m/%d %H:%M:%S")
ax.xaxis.set_major_formatter(xfmt)
plt.xticks(rotation=70)
plt.show()

最新更新