Установка микросекунд в два десятичных знака в формате оси в matplotlib - PullRequest
0 голосов
/ 27 февраля 2020

Я строю простую программу, которая покажет график прогресса спортсмена. Итак, у нас есть два набора данных: возраст и результат в этом возрасте.

Это мой код:

x = [15, 16, 17]  # age of athlete
y_raw = ['52,70', '52,55', '53,03']  # time in string
y = []
for item in y_raw:
    item_datatime = datetime.strptime(item, '%S,%f')  # transform time in string into datetime format
    y.append(item_datatime)

plt.style.use('seaborn')
plt.plot(x, y, 'bo', label='Athlete')
ax_time_format = '%S,%f'
plt.xticks(range(min(x) - 1, max(x) + 2))
plt.tight_layout()
plt.gca().yaxis.set_major_locator(mpl_dates.AutoDateLocator())
plt.gca().yaxis.set_major_formatter(mpl_dates.DateFormatter(ax_time_format))

plt.show()

И результат: enter image description here

Я хочу, чтобы ось y была точной с точностью до двух знаков после запятой, поэтому она должна go от высоты подъема 52,60, затем 52,70, затем 52,80 и так далее. Я понятия не имею, как справиться с этим (я пытался написать ax_time_format = '%S,%f' как ax_time_format = '%S,%02f', но это не работает.

Итак, есть какие-нибудь идеи здесь?

ps Я знаю, как делайте это в обычном числовом формате, но этот подход не работает с форматом времени данных (или я просто делаю это неправильно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...