因此,我目前正在绘制一些通过csv文件导入到我的代码中的数据。
我的y值为NO2列 我的x值是朱利安日期
我的数据如下:
如您所见,儒略历日期总是按照您的期望增加。正如您所期望的,NO2数据会上下波动。当我绘制它时,会发生这种情况:
我想知道如何正确分配我的NO2数据?
我的代码如下:
filein='filein'
fileout='fileout'
import csv
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
headers = ['JulianDate','NO2']
with open(filein, 'r') as sat: ##opens data
with open(fileout, 'w') as outfile: ##Opens file to write csv data to
for line in sat:
if " Julian date" in line:
writer=csv.writer(outfile)#Specifies to write this to outfile
writer.writerow(headers)#Writes Headers
elif "2004" in line: #specifies the year of data I want to look at
line=line.split() #Eliminates unnecessary spacing in output
writer=csv.writer(outfile)
writer.writerow(line)#writes to output file
df=pd.read_csv(output,names=headers,delimiter=',')
plt.scatter(x=df['JulianDate'],y=df['NO2'])
答案 0 :(得分:1)
必须将日期转换为整齐的图的日期时间格式。我建议使用转换后的日期创建一个datetime索引,并使用内置于plot方法的熊猫。
df.index = pd.to_datetime(df['JulianDate'].astype('int'), format='%y%j')
df['N02'].plot()
目前,我找不到将儒略十进制数字转换为日期时间格式的正确方法。因此,使用上面的代码,您将丢失一天中的十进制数字中包含的信息。