前職のときにPythonに出会って、当時は勉強を兼ねて来客数をデータ化してみようということをしてました。
その時のコードがPCから見つかったので、何してたか思い出しながら載せようと思いました。
※当時の職場に非利益になるような情報は載せません。
あくまで「こう書けばこう動く」ということを載せるだけなので悪しからず
最初は人数を表にしたいので、データフレームにしました。
このように比較する年を列、比較項目を行として表にしたかったので、
当時の私はこのように書きました。(数字は適当です)
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
#totalの数字(20xx年と20yy年の人数の比較)
data20xx = {'Separation':["total","weekday","holiday","man","child-man","woman","child-woman"]
,'people20xx':[21000,1000,2000,3000,4000,5000,6000]}
data20yy = {'Separation':["total","weekday","holiday","man","child-man","woman","child-woman"]
,'people20yy':[32000,2000,4000,10000,2000,4000,10000]}
df_total20xx = pd.DataFrame(data20xx)
df_total20yy = pd.DataFrame(data20yy)
df_total = pd.merge(df_total20xx,df_total20yy,how="inner",on="Separation")
fig, ax = plt.subplots(figsize=(4,4))
ax.axis('off')
ax.axis('tight')
ax.table(cellText=df_total.values,
colLabels=df_total.columns,
rowLabels=df_total.index,
loc='center',
bbox=[0,0,1,1])
#画像として保存
plt.savefig('20xx-20yy-total.png')
#1ヵ月ごとの線グラフ(20xx-20yy)
plt.plot(columns1,list20xx,color="green",ls="--",marker="*",label="20xx")
plt.plot(columns1,list20yy,color='red',ls="--",marker="o",label='20yy')
plt.xticks(columns1,columns1)
plt.xlabel('month')
plt.ylabel('people')
plt.grid()
plt.legend(bbox_to_anchor=(1, 1), loc='upper right', borderaxespad=0, fontsize=10)
plt.show()
plt.savefig('20xx-20yymonth_total.png')
男女(大人、子供)の人数の割合を円グラフで比較してみました。
# 円グラフ (外側20xx)
plt.pie([11000,5440,3400,1000],
labels=["Man","ChildMan","Woman","ChildWoman"],
counterclock=False,
startangle=90,
autopct="%1.1f%%",
wedgeprops={'linewidth':1,'edgecolor':"white"})
plt.axis('equal')
# 円グラフ (内側2019, 半径 70% で描画)
plt.pie([9000,3500,3500,800],
counterclock=False,
startangle=90,
radius=0.7,
autopct="%1.1f%%",
wedgeprops={'linewidth':1,'edgecolor':"white"})
plt.axis("equal")
# 中心 (0,0) に 40% の大きさで円を描画
centre_circle = plt.Circle((0,0),0.4,color='black', fc='white',linewidth=1.25)
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
このようなことをしていました。
当時の私は自作関数を使わず、組込み関数だけを使って書いてました。
理由は関数を作るのがめんどくさかったからです。
(当時の自分を殴りたい)
また、人の数え方は目視で人数を数え、そのデータを自分で入力するというだけの物でした…。
ラズパイなどでセンサーの開発をしてみよう!って気持ちはありましたが、その気持ちは前の職場に置いていきました笑
当時は自分が書いたコードが動くだけで満足していましたが、今このコードを見たり当時の作業を思い出せば、なんて無謀なことをしていたのだろうかと思います…。
これらのコードの整理はいつか行いたいとは思います。