C100の頒布数を可視化する
maptlotlibで販売数の時系列データを描画する
google spread sheetを読み込むには認証情報が必要
累積和も追加したい
cumsum
x軸はbarにするとなぜか間引いてくれない
step sizeの指定ができない
やり方不明なのでいったん飛ばす
seriesのindexのdatatypeをdatetime64[ns]にすると棒グラフ描画がバグる
同じ問題が2020年に報告されている
Unfortunately, matplotlib's bar plots don't seem to play along very happily with pandas dates.
widthが異様に大きくなっているようだったので、widthをものすごく小さくすることで解決
最大の値でそれ以降が入力値0の場合に塗りつぶされてしまう
strでdatetimeを入力すると正常になる。なぜ?
日時がずれていると正常表示されるが、同日の時刻だとダメらしい
そもそも時刻が変なので修正する
修正した結果、想定した時刻と違う場所にプロットされていることがわかった
表示期間がおかしい
https://gyazo.com/f5b1e63bc2165458cf9cd4adf411f263https://gyazo.com/f9fe8f769cdcae339a1c02335aa7f49d
左:plotだと正常、右:barだと完全にイカれたグラフになる
https://gyazo.com/c37c72622cea82a3112022658c4bb0fe
code:py
datetimes = pd.to_datetime(datetimeList)
series = pd.Series(1 * len(datetimes), index = datetimes) fig, ax = plt.subplots()
ax.bar(series.index, val)
ax.set_xlim(xmin=pd.to_datetime("2022-08-13"))で直すことができるが、↓の問題でグラフはイカれたままになる。むしろ下を直したらこっちは修正しなくてもいいかもしれない
indexで指定した(x, y)=(時刻,値)のペアになっていない`
matplotlib.axes.Axes
重ねたい→軸コピー
軸を別にしたい→軸コピーすればよかった
secondary_yを指定すればよさそう
サブプロットの軸だけ消したい(ラベルは残したい)
https://gyazo.com/596b99deef6ba484a9762fbab1905c07
知人との会話
matplotlibはpython描画ライブラリのデファクトスタンダード
matplotlibは難しい(n=3)
同じことが複数の方法でできるように見えて、方法によってできないことがある
「pandasのplotはその場ですぐ確認したい時にしか使わない」
matplotlibが内部的に使われているが、matplotlibともまた違う
matplotlib自体が複雑なのにpandasのplotの複雑性が加わると訳がわからなくなる