LoginSignup
3
1

More than 1 year has passed since last update.

Matplotlib可視化 - 育休中の1日のタイムスケジュール

Posted at

Matplotlib 可視化の練習として、
育休中のとある1日のタイムスケジュールを円グラフにしてみた。

※ 初心者すぎてコードが美しくないですがご了承ください。
※ 美しい書き方教えてください。

ざっくり手順

①外側グラフを24分割し、0~23のラベルを記載、グラフカラーを白にした。
②内側グラフを時間分割し、ラベル、ラベル位置、グラフ角度、カラーを指定。
③上記の①②をがっちゃんこ。

実際のコード

まず外側グラフの内容を確認。

# 外側のドーナツ作成

time_label = ["0","1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
        "11", "12", "13", "14", "15", "16", "17", "18", "19",
        "20", "21", "22", "23"]

x_time_label = np.array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

wedgeprops={"width":0, "edgecolor":'white'}

plt.pie(x_time_label , radius=1.3, labels=time_label, 
    startangle=97.5, counterclock=False, colors=colors, 
    wedgeprops= wedgeprops)

こんなグラフができます。
220728時計外側.png

次に内側グラフの内容を確認。

# 内側のドーナツ作成

label = ["就寝", "朝食・準備", "送迎", "寝かしつけ", "片付け", "学習",
     "調理・昼食", "遊び・買い物", "寝かしつけ", "学習", "送迎", 
     "遊び", "調理・夕食", "遊び", "お風呂"]

colors = ["plum","lightcoral", "skyblue", "plum", "silver", 
          "yellowgreen", "lightcoral", "gold", "plum", "yellowgreen",
          "skyblue", "gold", "lightcoral", "gold", "silver" ]

plt.pie(x, labels=label, counterclock=False, startangle=127.5,

wedgeprops={'linewidth': 1, 'edgecolor':"white"},  
        colors=colors, radius=1.7, labeldistance=0.5, rotatelabels=True)

こんなグラフができます。
2200728時計内側.png

最後に、上記コードを一緒に書いてグラフをがっちゃんこしてみます。

# 外側のドーナツ作成

time_label = ["0","1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
        "11", "12", "13", "14", "15", "16", "17", "18", "19",
        "20", "21", "22", "23"]

x_time_label = np.array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1])

wedgeprops={"width":0, "edgecolor":'white'}

plt.pie(x_time_label , radius=1.3, labels=time_label, 
    startangle=97.5, counterclock=False, colors=colors, 
    wedgeprops= wedgeprops)
 

# 内側のドーナツ作成

label = ["就寝", "朝食・準備", "送迎", "寝かしつけ", "片付け", "学習",
     "調理・昼食", "遊び・買い物", "寝かしつけ", "学習", "送迎", 
     "遊び", "調理・夕食", "遊び", "お風呂"]

colors = ["plum","lightcoral", "skyblue", "plum", "silver", 
          "yellowgreen", "lightcoral", "gold", "plum", "yellowgreen",
          "skyblue", "gold", "lightcoral", "gold", "silver" ]

plt.pie(x, labels=label, counterclock=False, startangle=127.5,

wedgeprops={'linewidth': 1, 'edgecolor':"white"},  
        colors=colors, radius=1.7, labeldistance=0.5, rotatelabels=True)


plt.show()

すると、このようなタイムスケジュールができます。
220728Matplotlibでタイムスケジュール.png

作ってみて気づいたこと

寝すぎやん!

(子供の寝かしつけで一緒にねてしまう...)
(夜泣きがあるから朝おきられない...)

夜泣きを無くすねんねトレーニングを始める決心ができました。

参考サイト

こちらを参考にしました。
https://www.yutaka-note.com/entry/matplotlib_pie#%E3%83%A9%E3%83%99%E3%83%AB%E3%81%AE%E4%BD%8D%E7%BD%AE

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1