为什么我的地块值不正确?

时间:2018-08-28 13:32:44

标签: python pandas csv matplotlib

因此,我目前正在绘制一些通过csv文件导入到我的代码中的数据。

我的y值为NO2列 我的x值是朱利安日期

我的数据如下:

enter image description here

enter image description here

如您所见,儒略历日期总是按照您的期望增加。正如您所期望的,NO2数据会上下波动。当我绘制它时,会发生这种情况:

enter image description here

我想知道如何正确分配我的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'])

1 个答案:

答案 0 :(得分:1)

必须将日期转换为整齐的图的日期时间格式。我建议使用转换后的日期创建一个datetime索引,并使用内置于plot方法的熊猫。

df.index = pd.to_datetime(df['JulianDate'].astype('int'), format='%y%j')
df['N02'].plot()

目前,我找不到将儒略十进制数字转换为日期时间格式的正确方法。因此,使用上面的代码,您将丢失一天中的十进制数字中包含的信息。