簡體   English   中英

如何在x軸上使用日期並在y軸上使用降雨量來使用matplotlib過濾CSV?

[英]How to filter csv with matplotlib using dates on the x-axis and rainfall on the y-axis?

我有一個csv文件,其中所有兩列都顯示為“日期”,另一列的降雨量為英寸(稱為“降雨”)。 我不確定該怎么做,到目前為止,我的方法一直沒有奏效。 在進入“日期”和“降雨”列之前,我還需要跳過前5行。

這是我到目前為止的代碼:

import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('1541553208_et.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    for row in plots:
        for i in row:
            x.append(row[0])
            y.append(row[1])


plt.plot(x,y, label='Loaded from file!')
plt.xlabel('Dates')
plt.ylabel('Evaporation (inches)')
plt.title('Eden_7')
plt.legend()
plt.show()

當我運行代碼時,得到以下錯誤結果:

在此處輸入圖片說明

我想擁有它,以便每個月的降雨數據都可以匯總為一個

這是我正在進行的事情的一個例子: 在此處輸入圖片說明

我試圖獲得與頂部相同的效果。 怎么辦呢?

謝謝

使用pandas庫而不是csv庫可能會更簡單。

例如,pandas允許您將csv文件直接存儲到稱為dataframe的數據結構中。 這將使您可以對日期或降雨量進行分組並繪制數據。

import pandas as pd
# rain will be an dataframe instance
rain = pd.read_csv(csvfile)
rain = rain.groupby(rain['rainfall'])
rain.plot(kind='bar')
plt.show()

玩弄它,熊貓非常強大。

您可以在此處找到pandas文檔: https : //pandas.pydata.org/pandas-docs/stable/

盡管這可能不是立即解決方案,但從長遠來看可能會有所幫助。

如前所述,使用pandas庫將更加容易。 在您的csv庫之后,您可以嘗試運行此程序嗎,

import matplotlib.pyplot as plt
import csv

x = []
y = []
f = open('1541553208_et.csv')
csv_f = csv.reader(f,delimiter=',')
for row in csv_f:
    x.append(row[0])
for row in csv_f:
    y.append(row[1])

plt.plot(x,y, label='Loaded from file!')
plt.xlabel('Dates')
plt.ylabel('Evaporation (inches)')
plt.title('Eden_7')
plt.legend()
plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM