2017-03-04 4 views
1

私のpythonスクレーパーは、Webから動的な値を引き出し、として保存します: ([年、月、日、時、分、価格])私のCSVファイルの最初の5つの値をmatplotlibでx軸として使う方法は?

私はx軸との最初の5を入れたいですyの価格。 たとえば、2017/03/01/09:34 x座標と1230 y座標。または、単に時間と分をx座標、年月日をタイトルにしてください。ここで

私はcsvファイルを追加するために使用するコードは次のとおりです。

import csv 
with open("example.csv", 'a') as example: 
     Writer = csv.writer(example) 
     Writer.writerow([year, month, day, hour, minute, price]) 

私はちょうど昨日、matplotlibのを学び始めたが、これまでのところ、これは私がプロットのためにしようとしたコードです:

import matplotlib.pyplot as plt 
import pandas as pd 
from pandas import DataFrame 

df = pd.read_csv(example.csv") 

df.plot() 
plt.show() 
+0

コードを表示できますか?役に立つデータを得るには、サンプルデータを含むMWE(https://stackoverflow.com/help/mcve)を提出してください。 –

+0

私が追加するコードとプロットするコードを追加しました – TB1

答えて

0

それはdoesnのx軸に5つの値をプロットするのは理にかなっていますが、あなたの行はちょうど分解された日付と価格なので、2列のデータフレームに再構成することができます。

ので、のように見えるCSVで:あなたはこのようにそれを扱うことができる

year,month,day,hour,minute,price 
1999, 12, 31, 23, 59, 10 
2000, 12, 20, 23, 59, 15 
2001, 6, 15, 23, 59, 13 
2001, 12,  2, 23, 59, 17 

import datetime 
import matplotlib.pyplot as plt 
import pandas as pd 

df = pd.read_csv("./example.csv") 


def make_a_real_date(the_row): 
    year = the_row[0] 
    month = the_row[1] 
    day = the_row[2] 
    hour = the_row[3] 
    minute = the_row[4] 
    price = the_row[5] # although we don't care about price for now 
    # https://docs.python.org/2/library/datetime.html#datetime-objects 
    return datetime.datetime(year, month, day, hour, minute) 


df["real_datetime"] = df.apply(make_a_real_date, axis=1) 

df = df.drop(["year", "month", "day", "hour", "minute"], axis=1) 

df.plot() 
plt.show() 

これはあなたの時間と価格のグラフを与えます。あなたはplot_dateも調べたいと思うかもしれません。時系列データをプロットするのは苦痛です!

+0

仕事、ありがとう – TB1

関連する問題