превышение индекса фрейма данных при построении графиков с помощью matplotlib - PullRequest
0 голосов
/ 11 сентября 2018

Я хочу нанести на график с фреймами данных, но иногда мне нужно больше контроля над метками x-tick, и похоже, что индекс фрейма данных «перекрывает» мой код. вот код:

test_df = pd.DataFrame({'cycles':[0,'b',3,'d','e','f','g'],'me':[100,80,99,100,75,100,90], 'you':[100,80,99,100,75,100,90], 'us':[100,80,99,100,75,100,90]})
f, ax = plt.subplots()
x = test_df['me']
x.index = ['a','b','c','d','e','f','g']



print(x)
for a in ax.get_xticklabels():
    a.set_text('me')

print(ax.get_xticklabels()[0])
ax.plot(x)
test_df.plot(x = 'cycles', y = 'me')

есть идеи о более простых способах простого изменения меток x-tick для фреймов данных без изменения индекса фрейма данных, но просто на лету, делая x-ticks как я хочу для любого столбца фрейма данных, который я хочу?

1 Ответ

0 голосов
/ 11 сентября 2018

Вы можете указать xticks в пределах DataFrame.plot.По сути, это всего лишь фиктивная фигура, гарантирующая правильное количество меток.

Затем просто установите метки для галочек вручную после графика.

import pandas as pd
import matplotlib.pyplot as plt
df = pd.DataFrame({'cycles':[0,'b',3,'d','e','f','g'],
                   'me':[100,80,99,100,75,100,90]})

fig, ax = plt.subplots()
test_df.plot(x='cycles', y='me', ax=ax, xticks=test_df.index)
_ = ax.set_xticklabels(test_df['cycles'])
plt.show()

enter image description here

Но вы должны немного сомневаться в том, что xticks не генерируются автоматически.Линейные графики имеют смысл, когда ваши значения являются порядковыми.Мне не кажется очевидным, что 0 должен быть связан с 'b' больше, чем 'e' должен быть связан с 'f'.В этой ситуации гистограмма имеет смысл, и неудивительно, что xticks генерируются без проблем.

test_df.plot(x='cycles', y='me', kind='bar', legend=False)

enter image description here

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