Пожалуйста, рассмотрите два графика, сгенерированных следующим сценарием. Линейный график неправильно расположен в fig2
.
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
np.random.seed(0x5eed)
arr1 = np.random.randint(5, 10, 4)
arr2 = np.random.randint(15, 20, 4)
idx = [1, 3, 4, 5]
kwargs = {'marker': 'o', 'color': 'C1'}
fig1, ax11 = plt.subplots()
ax12 = ax11.twinx()
ax11.bar(idx, arr1)
ax12.plot(idx, arr2, **kwargs)
fig1.savefig('fig1.png')
df = pd.DataFrame({'foo': arr1, 'bar': arr2}, index=idx)
fig2, ax21 = plt.subplots()
ax22 = ax21.twinx()
df['foo'].plot.bar(ax=ax21)
df['bar'].plot.line(ax=ax22, **kwargs)
fig2.savefig('fig2.png')
fig1
(ожидается):
fig2
(неожиданно):
После некоторых исследований я обнаружил следующие условия для воспроизведения этой проблемы.
- Оба используются гистограмма и линейный график (
fig2
является правильным, если оба графика являются линейными) - Индекс неравномерен (
idx = range(4)
решает проблему)
Я нашел аналогичный вопрос , но это не так для меня. df.index
класса Int64Index
. Это ожидаемое поведение или что-то, о чем я должен сообщить трекеру проблем?