前回
溜まったデータはこんな感じです。
PS C:\Users\masashi\tools\gta_assets> cat .\data\gtacashflow.csv 2020/04/12 17:15,40000,1081924 2020/04/12 17:30,40000,1081924 2020/04/12 17:45,0,1121924 2020/04/12 18:00,0,1095781 2020/04/12 18:15,0,1060181 2020/04/12 18:30,0,1236818 2020/04/12 18:45,2000,1236818 2020/04/12 19:00,2000,1136818 2020/04/12 19:15,0,1122693 2020/04/12 19:30,0,1239993 2020/04/12 19:45,0,1248918 2020/04/12 20:00,0,1248918 2020/04/12 20:15,0,1248918
グラフ化
私含めたSIer業界()ならExcelでグラフ化するところですが、
私も脱Excelをしていきたいのでコードを書いてグラフに起こします。
pythonのサイトでよく出てくるmatplotlibを使います。
numpyもセットでよく使われますが、今回は使わず前回タンキングしたCSVを使います。
コード
取得したデータから起こします。
現金と銀行預金のデータがありますので、併せられるよう棒グラフにします。
グラフ化はpyplotというメソッドを使います。
凡例もつけられて凄い便利です。
matplotlibの使用例はpyplotがほとんどなんですが、
他の使い方って出てきませんね。
(今度調べてみます)
とりあえずpyplotはデータをリスト化して使うと覚えておけば何とかなりますw
- view_assets.py
import csv import matplotlib.pyplot as plt with open('.\\data\\gtacashflow.csv', 'r') as f: Assets = csv.reader(f) DATA = list(Assets) x = list() y_cash = list() y_bank = list() for a in DATA: x.append(a[0]) y_cash.append(int(a[1])) y_bank.append(int(a[2])) # Create graph as bar, add legend p1 = plt.bar(x, y_bank, color='blue') p2 = plt.bar(x, y_cash, bottom=y_bank, color='green') plt.legend((p1[0],p2[0]),('Bank','Cash')) # Fine-tune labels plt.title('GTA Online Asset Flow') plt.xticks(rotation=45) plt.ylabel('Assets ($)') plt.ylim([0,1500000]) plt.show()
実行
PS C:\Users\masashi\tools\gta_assets> python .\view_assets.py
OK!
なんかそれっぽくないですか?
思ったより増減の幅が少ないので映えませんがいい感じ!
ミッションで稼いではいますが、持っている拠点の日時の固定費の支出もあるので意外とお金貯まりません。
cashが無いのは死ぬと減ってしまうのですぐ銀行に預けるためです。
預けておくと死んでも減りません。
買い物は預金から使うこともできるのでなるべく現金を持たないのがコツですw
で、これって何の役に立つん?
ただのゲーム内通貨のフローをグラフ化しただけなので役には立ちません。
ゲーム内の犯罪会社の出来事ですが、
自分の稼ぐさまを見ることで一応経営者気分が味わえますw
まあ、メインはコードでのグラフ化なのでそれが実装できて嬉しいです。
GUI系の出力ができるとプログラミングの面白さが加速しますね。
結び
役に立たないと言いながらこれを使って自作の支払い集計ツールの可視化もできそうですね。
また、Rockstar社のゲームなら似たようなHPになってると思うのでこの方法で資金系の可視化ができそうです。
Red Dead Redemption 2は未購入ですが、買ったらこれと合わせてやってみます。
本件のネタは1年くらい前に思いついたのですが、やっと実現できました。
APIが動かない、seleniumでこれ以上進めない、で何回も挫折したのですが、
今どき調べれば何かヒットしますね。(ヒントになり得るものでも)
先人の知恵に感謝です。
データタンキング用のブラウザ操作の過程が一番難しくて
今回のグラフ化はどちらかというと簡単でした。
ブラウザの仕組み、認証の仕組みなどインターネットは奥が深くて楽しいです。
いや、深すぎか。
まだリポジトリのみですが、随時更新していきます。
グラフの上限値の自動設定や棒グラフのカラーなんかは調整したいですね。
それでは最後に私の愛車、インテヴェーロ コケットのテールを見ながらお別れしましょう。