#ConciseDateFormatterを使用した日付フォーマット変更 %matplotlib inline import pandas as pd import datetime import matplotlib.pyplot as plt import matplotlib.dates as mdates import numpy as np #the default formatter base = datetime.datetime(2019, 10, 1) dates = np.array([base + datetime.timedelta(hours=(0.5*i)) for i in range(24*256)]) N = len(dates) np.random.seed(19423521) y = np.cumsum(np.random.randn(N)) fig, axs = plt.subplots(4, 1, constrained_layout=True, figsize=(6, 8)) lims = [(np.datetime64('2019-10'), np.datetime64('2020-02')), (np.datetime64('2019-12-03'), np.datetime64('2019-12-15')), (np.datetime64('2019-12-03 13:00'), np.datetime64('2019-12-04 13:00')), (np.datetime64('2019-12-03 11:00'), np.datetime64('2019-12-03 11:01'))] for nn, ax in enumerate(axs): ax.plot(dates, y,'g-') ax.set_xlim(lims[nn]) # rotate_labels... for label in ax.get_xticklabels(): label.set_rotation(30) label.set_horizontalalignment('right') axs[0].set_title('Default Date Formatter') plt.savefig("defaultdateformatter.png", dpi=100,transparent = False, bbox_inches = 'tight') plt.show() #~.dates.ConciseDateFormatter fig, axs = plt.subplots(4, 1, constrained_layout=True, figsize=(6, 8)) for nn, ax in enumerate(axs): locator = mdates.AutoDateLocator(minticks=4, maxticks=9) formatter = mdates.ConciseDateFormatter(locator) ax.xaxis.set_major_locator(locator) ax.xaxis.set_major_formatter(formatter) ax.plot(dates, y,'g-') ax.set_xlim(lims[nn]) axs[0].set_title('Concise Date Formatter') plt.savefig("Concisedateformatter.png", dpi=100,transparent = False, bbox_inches = 'tight') plt.show() #use the units registry import matplotlib.units as munits converter = mdates.ConciseDateConverter() munits.registry[np.datetime64] = converter munits.registry[datetime.date] = converter munits.registry[datetime.datetime] = converter fig, axs = plt.subplots(4, 1, figsize=(6, 8), constrained_layout=True) for nn, ax in enumerate(axs): ax.plot(dates, y,'g-') ax.set_xlim(lims[nn]) axs[0].set_title('Concise Date Formatter') plt.savefig("Concisedateformatter_regist.png", dpi=100,transparent = False, bbox_inches = 'tight') plt.show() #version import matplotlib print(matplotlib.__version__) 3.3.4 print(np.__version__) 1.20.1 print(pd.__version__) 1.2.3