Построение вертикальных линий на графике Pandas Line с осью мультиндексPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Построение вертикальных линий на графике Pandas Line с осью мультиндекс

Сообщение Anonymous »

У меня есть рамка данных, индекс которого является мультиндексом, где оси [0] - это дата, а оси [1] - это ранга. Ранг начинается с 1 и заканчивается в 100, но может быть переменное количество рангов между ними, как показано ниже.
Вот ряды < /p>

Код: Выделить всё

dx = pd.DataFrame({
"date": [
pd.to_datetime('2025-02-24'), pd.to_datetime('2025-02-24'), pd.to_datetime('2025-02-24'), pd.to_datetime('2025-02-24'),
pd.to_datetime('2025-02-25'), pd.to_datetime('2025-02-25'), pd.to_datetime('2025-02-25'),
pd.to_datetime('2025-02-26'), pd.to_datetime('2025-02-26'), pd.to_datetime('2025-02-26'), pd.to_datetime('2025-02-26'), pd.to_datetime('2025-02-26')
],
"rank": [0.0,1.0,2.0,100.0,0.0,1.0,100.0,0.0,1.0,2.0,3.0,100.0],
"value": [2.3, 2.5, 2.4, 2.36, 2.165, 2.54, 2.34, 2.12, 2.32, 2.43, 2.4, 2.3]
})

dx.set_index(["date", "rank"], inplace=True)

Я хочу построить этот df и df.plot () хорошо работает, Создавая разумную ось X. Тем не менее, я хочу добавить сетку или вертикальные строки во всех Rank = 1 , и все Rank = 100 (другой цвет) .
Я попробовал:

Код: Выделить всё

fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(30, 5))

dx.plot(ax=axes[0])
axes[0].tick_params('x', labelrotation=90)
xs = [x for x in dx.index if x[1]==0]

for xc in xs:
axes[0].axvline(x=xc, color='blue', linestyle='-')
< /code>
Но получить эту ошибку: < /p>
ConversionError: Failed to convert value(s) to axis units: (Timestamp('2025-02-24 00:00:00'), 0.0)
Я также хочу показать только x метки для ранга = 0 , а не все из них. В настоящее время, если я установите вращение метки на 90, это приведет к этому, но не уверен, является ли это лучшим способом обеспечить это. < /P>
axes[0].tick_params('x', labelrotation=90)
< /code>
Итак, ищет 2 ответа < /p>

Как установить вертикальные строки в определенных точках с этим типом мультиндекса < /li>
Как гарантировать, что только определенные метки x показывают на графике < /li>
< /ol.>

Подробнее здесь: https://stackoverflow.com/questions/794 ... dex-x-axis
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Построение вертикальных линий на графике Pandas Line с осью мультиндекс
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Построение вертикальных линий на графике Pandas Line с осью мультиндекс
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Разница между осью фигуры и осью вспомогательного графика?
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Добавление вертикальных линий с помощью matplotlib (РЕШЕНО)
    Гость » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Гость
  • Как ограничить диапазон вертикальных линий в поле отрицательных чисел
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»