Неправильная настройка xtick python - PullRequest
1 голос
/ 28 октября 2019

У меня есть CSV-файл, который содержит данные за пять дней, все установлено в несколько столбцов. Проблема заключалась в том, что каждое измерение было установлено каждые 5 минут, поэтому в течение одного дня у меня было 288 строк, что на 5 дней равно 1440, и это выглядит так (0:00, 0:05, 0:10 ...).

Я использовал этот код для построения всего на одном графике, но каким-то образом расположение xticks не работает должным образом.

Вот код:

fig, ax = plt.subplots(1,1)
ax.set_xticks(x)
ax.set_xticklabels([v for v in data.Time], rotation=45)
ax.plot(x, data.Decfreq)
plt.xticks(np.arange(1, 1440, 60))

Участок Iполучаю:

enter image description here

Мои данные:

00:00 7.680827152169027 0.14000897718551028 7.600809170600135 0.23361947896117427 00:05 7.650820409080692 0.1564676061198724 7.530793436727354 0.2561764164383169 00:10 7.630815913688469 0.15549587808153068 7.540795684423466 0.2576230038042995 00:15 7.820858619914587 0.17966340911411277 7.540795684423466 0.28225658521669184 00:20 7.540795684423466 0.17165693216100902 7.50078669363902 0.2630767707044145 00:25 7.670824904472915 0.13538117325249963 7.390761968981794 0.24547505458369223 00:30 7.84086311530681 0.18094062831351296 7.630815913688469 0.26532083891716435 00:35 7.9608900876601485 0.14987576886445067 7.660822656776803 0.25499025558872285 00:40 7.200719262755675 0.12533028213451503 7.120701281186783 0.23856516035634334

Где только первый (время) и второй (данные) столбцы меня интересуют.

Реализация кода от @Anwarvic У меня есть это:

enter image description here

1 Ответ

0 голосов
/ 28 октября 2019

Как я понял из вашего комментария, проблема в ярлыке, а не в самих галочках. Вам нужно пропустить 60 из data.Time и изменить set_xticklabels, например, так:

fig, ax = plt.subplots(1,1)
ax.set_xticks(x)
values = data.Time.values
ax.set_xticklabels([values[i] for i in range(0, len(values), 60)], rotation=45)
ax.plot(data.Decfreq)

И нет необходимости в части plt.xticks(), поскольку она такая же, как ax.set_xticks().

РЕДАКТИРОВАТЬ

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

data = pd.read_csv('sample.csv')
x = np.arange(0, 1440, 60)
fig, ax = plt.subplots(1,1)
ax.set_xticks(x)
# ax.set_xticklabels([v for v in data.Time], rotation=45)
values = data.Time.values
ax.set_xticklabels([values[i] for i in range(0, len(values), 60)], rotation=45)

ax.plot(data.Decfreq)
plt.show()

А вот график: enter image description here

Итак, я советую попробовать изменить мой csv-файл на ваш с небольшими отличиями и посмотреть, работает ли он

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