Python Pandas DataFrame – невозможно отобразить полосы и линии на тех же осях

Я, возможно, делаю что-то не так, но я изо всех сил стараюсь сделать следующее:

# plot bars and lines in the same figure, sharing both x and y axes. df = some DataFrame with multiple columns _, ax = plt.subplots() df[col1].plot(kind='bar', ax=ax) df[col2].plot(ax=ax, marker='o', ls='-') ax.legend(loc='best') 

Я ожидал увидеть график с некоторыми барами и строкой. Тем не менее, в конце концов, это только строка для df[col2] , бары из df[col1] просто отсутствуют на диаграмме . Что бы ни было до того, как df[col2] похоже, был перезаписан.

Я обошел это с помощью:

 df[col1].plot(kind='bar', ax=ax, label=bar_labels) ax.plot(df[col2], marker='o', ls='-', label=line_labels) ax.legend(loc='best') 

Тем не менее, это не идеально, поскольку я должен был использовать метки, иначе легенды не будут включать элементы для df[col2]

У кого-нибудь есть более элегантное решение, чтобы отобразить как бары, так и линии?

** Редактировать ** Благодаря @DizietAsahi – выяснилось, что это проблема с DatetimeIndex как значения x. Подал в Панды следующее:

https://github.com/pydata/pandas/issues/10761#issuecomment-128671523

3 Solutions collect form web for “Python Pandas DataFrame – невозможно отобразить полосы и линии на тех же осях”

Интересно, связана ли ваша проблема с состоянием вашего сюжета?

Это работает:

 df = pd.DataFrame(np.random.random_sample((10,2)), columns=['col1', 'col2']) fig, ax = plt.subplots() plt.hold(True) df['col1'].plot(kind='bar', ax=ax) df['col2'].plot(ax=ax, marker='o', ls='-') ax.legend(loc='best') 

введите описание изображения здесь

Это показывает только строку, а не график

 df = pd.DataFrame(np.random.random_sample((10,2)), columns=['col1', 'col2']) fig, ax = plt.subplots() plt.hold(False) df['col1'].plot(kind='bar', ax=ax) df['col2'].plot(ax=ax, marker='o', ls='-') ax.legend(loc='best') 

введите описание изображения здесь

Благодаря @DizietAsahi – выяснилось, что это проблема с DatetimeIndex как значения x. Целочисленные значения работают с приведенным выше кодом @ DizietAsahi.

Подал в Панды следующее:

https://github.com/pydata/pandas/issues/10761#issuecomment-128671523

У меня такая же проблема с использованием DatetimeIndex в качестве значений x. Я не мог заставить хак в github работать, используя Jupyter Notebook Version 4.2.0 с Python 2.7.11. Я группирую два столбца в месяц для построения в виде столбцов, а затем накладываю необработанные значения в виде линейного графика.

Мое решение – использовать matplotlib для построения гистограмм и линии, это был единственный способ заставить его работать.

 import pandas as pd import matplotlib import matplotlib.pyplot as plt matplotlib.style.use('ggplot') %matplotlib inline df = pd.read_excel('data.xlsx', index_col='Date') fig, ax = plt.subplots(figsize=(15,10)) ax.hold(True) g = df.groupby(pd.TimeGrouper("M")) width=10 ax.bar(g.sum().index, g['Money Out'].sum(),width=width, color='r',label='Money Out') ax.bar(g.sum().index, g['Money in'].sum(),width=-width,color='g', label='Money In') ax.plot(df[['Balance']], color='black', lw=1, ls='-',label='Balance') ax.legend(loc='best') 

образ

  • новый столбец с координатами с использованием геофизических панд
  • Сохранение порядка столбцов - Python Pandas и Column Concat
  • Как выполнить итерацию по двум столбцам панды
  • как я могу получить объект pandas.offsets с учетом строки смещения
  • Гистограмма с уложенной пандой дублирует цвета для больших легенд
  • Не удалось добавить префикс с процентом
  • Pandas: Crash при делении одной колонки на другую с помощью набора индексов
  • создание нескольких таблиц Excel с использованием данных в кадре данных pandas
  • Python - лучший язык программирования в мире.