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を入力すると正常になる。なぜ?
日時がずれていると正常表示されるが、同日の時刻だとダメらしい
そもそも時刻が変なので修正する
修正した結果、想定した時刻と違う場所にプロットされていることがわかった
表示期間がおかしい
左:plotだと正常、右:barだと完全にイカれたグラフになる
pyval = [1, 0, 5]
datetimeList = ["2022-08-13 00:00:00", "2022-08-13 00:10:00", "2022-08-13 00:10:01"]
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を指定すればよさそう
サブプロットの軸だけ消したい(ラベルは残したい)
知人との会話
matplotlibはpython描画ライブラリのデファクトスタンダード
matplotlibは難しい(n=3)
同じことが複数の方法でできるように見えて、方法によってできないことがある
「pandasのplotはその場ですぐ確認したい時にしか使わない」
matplotlibが内部的に使われているが、matplotlibともまた違う
matplotlib自体が複雑なのにpandasのplotの複雑性が加わると訳がわからなくなる