2017-11-22 65 views
-1

日曜日から始まる各行が曜日に関連するデータフレームがあります。合計で39行あります。 x軸にラベルのある曜日を1週間に一度に列Physicalから数値をプロットしたいと思います。これが与える曜日を追加する方法x軸ラベル

import pandas as pd 
import matplotlib.pyplot as plt 

df = pd.read_csv("health.csv", header = None, names = ['Physical', 'Emotional']) 
ax = df['Physical'].plot() 
plt.show() 

:私は今のところこれを持って、私は日曜日に開始し、曜日によってx軸にラベルを付けることができますどのように

enter image description here

をし、週を分割し、彼らがするように垂直に分離されている。

完全なデータは次のようになります。このような

5,5 
6,7 
6,9 
6,7 
5,6 
7,9 
5,9 
6,7 
7,6 
7,4 
7,5 
6,7 
7,9 
7,9 
5,6 
8,7 
9,9 
7,7 
7,6 
7,8 
7,9 
7,9 
7,6 
7,8 
6,6 
6,6 
6,7 
6,6 
6,5 
6,6 
7,5 
7,5 
7,5 
7,6 
7,5 
8,6 
7,6 
7,7 
6,6 
+0

あなたはmatplotlibのプロットに曜日をプロットする方法をSOにここに依頼する最初の人ですか?他の答えがどこまで助けにならないの? – ImportanceOfBeingErnest

+0

データに日付列がない場合、どのように日数をプロットできますか? –

+0

@cᴏʟᴅsᴘᴇᴇᴅ実際に彼はちょうど曜日を言います(だから私はいつも日にちをとり、日曜から始めることができます:))。あるいは、Sun-Satを割り当ててください。 –

答えて

0

何か?

import pandas as pd 
import calendar 

df = pd.DataFrame({'Physical': {0: 5, 
    1: 6,2: 6,3: 6,4: 5,5: 7,6: 5,7: 6,8: 7,9: 7,10: 7,11: 6,12: 7, 
    13: 7,14: 5,15: 8,16: 9,17: 7,18: 7,19: 7,20: 7,21: 7,22: 7,23: 7,24: 6,25: 6, 
    26: 6,27: 6,28: 6,29: 6,30: 7,31: 7,32: 7,33: 7,34: 7,35: 8,36: 7,37: 7,38: 6}}) 

# Get Dayofweek index number (start with 6 for sunday) 6,0,1.... 
df['DayOfTheWeek'] = [(i+6) % 7 for i in range(len(df))] 

# Get a map to translate to day of week 
d = dict(zip(range(7),list(calendar.day_name))) 
df['DayOfTheWeek'] = df['DayOfTheWeek'].map(d) 

# Loop through the df (splitting week by week) 
for i in range(round(len(df)/7)): 
    df.iloc[i*7:(i+1)*7].set_index('DayOfTheWeek').plot(kind='bar') 

plt.show() 

返し6枚、これは1です:

enter image description here

+0

なぜこれがdownvoteを取得しましたか? – eleanora

+0

@eleanoraわかりません。問題じゃない、助けてくれる? –

+0

ありがとうございます。私はあなたが私の範囲(int(round(len(df)/ 7)))のために必要と思う: 'として丸く返します。 – eleanora

関連する問題