過去に同じ状況に陥ったことがあります。その時は原因追求できずmatplotlib.pyplotではなくdf.plotで逃げた記憶があります。最近はその現象を見ていませんので、もしかしたらmatploblibのバージョンが上がって修正されたのかも知れません。こちらの環境は下記の通りです。
- matplotlib 3.1.3
- pandas 1.0.3
サンプルコードを示します。
python
1import numpy as np
2import pandas as pd
3import matplotlib.pyplot as plt
4import matplotlib.dates as mdates
5
6# 新しいpandas用のおまじない
7pd.plotting.register_matplotlib_converters()
8
9# ダミーデータの準備
10dates = pd.date_range(start="2020-01-01", end="2020-06-01", freq="3H")
11data = np.random.uniform(1000.0, 2000.0, dates.size)
12df = pd.DataFrame({"date": dates, "total": data})
13print(df)
14
15# プロット例
16colors = ["blue", "green", "red"]
17fig, ax = plt.subplots(3, 1, figsize=(12, 9))
18for i in range(3):
19 ax[i].plot(df.date, df.total, linestyle="-", marker=".", color=colors[i])
20 ax[i].grid()
21 ax[i].set_xlim("2020-02-28", "2020-06-01")
22 ax[i].set_ylim(500, 2500)
23
24# グラフのメモリを2020-03-29にする
25ax[0].xaxis.set_major_locator(mdates.DayLocator(interval=14))
26
27# グラフのメモリを2020-04-01にする
28ax[1].xaxis.set_major_locator(mdates.DayLocator(bymonthday=[1, 15]))
29
30# グラフのメモリを月単位にする
31ax[2].xaxis.set_major_locator(mdates.MonthLocator())
32
33plt.show()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/25 10:19