Matplotlib Pandas: отображает имена столбцов внутри штабеля

Учитывая панд Dataframe:

response_min \ device_mac 0dd8d 1f3cc 61ff6 623ce datetime 2016-05-25 08:00:00 0.000000 4.250000 0.250000 0.000000 2016-05-25 12:00:00 0.000000 0.000000 0.000000 0.000000 2016-05-25 16:00:00 0.000000 0.000000 0.000000 0.000000 2016-05-26 08:00:00 12.133333 119.666667 0.250000 0.000000 

при выполнении :

 ax = df.plot(kind='bar',stacked=True,logy=True) for p in ax.patches: ax.annotate(str(p.get_height()), (p.get_x() * 1.005, p.get_height() * 1.005)) 

я получил :

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

Как перейти к отображению имени столбца вместо значений внутри столбцов ?

Спасибо заранее.

( Предупреждение о спойлере ) Следуя советам Стэнли и помощи отладчика, я смог сделать это следующим образом (NB: масштаб журнала отключен):

 ax = df.plot(kind='bar',stacked=True,legend=True,width=0.2) # define a letter for each column list_column =[ (chr(idx + ord('a')),column) for idx,column in enumerate(list(df.columns.values))] # set the position of the annotation for each container def set_text_position(container): xy_pos = container._rect_transform._a._boxout._points y_start = xy_pos[0][1] y_end = xy_pos[1][1] if y_end-y_start>0: y_text = (y_start + ((y_end - y_start) / 2)) return y_text else: return 0 def set_legend(ax): for j, column in enumerate(list_column): ax.legend_.texts[j]._text = list_column[j][0] + " :" + list_column[j][1] def annotate_bar(ax, i): for j, column in enumerate(list_column): height = set_text_position(ax.containers[j][i]) if height > 0: ax.annotate(column[0], xy=(i, height), xycoords="data", xytext=(i+0.5, height), va="center", ha="center", bbox=dict(boxstyle="square", fc="w"),arrowprops=dict(arrowstyle="-")) for i, label in enumerate(list(df.index)): annotate_bar(ax, i) ax.legend(loc='upper center', bbox_to_anchor=(0.5, 1.3), ncol=3, fancybox=True, shadow=True) set_legend(ax) ax.margins( 1, None ) ax.set_ylabel('dwell time (minutes)') ax.set_xlabel("") 

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

One Solution collect form web for “Matplotlib Pandas: отображает имена столбцов внутри штабеля”

Что-то вроде этого:

 import pandas as pd import matplotlib.pyplot as plt df=pd.DataFrame({'Devices': [ 'dev1', 'dev2', 'dev3', 'dev4'], 'Response': [4.25,0.,119.,12.1],}) df = df.set_index('Devices') df.plot(kind='bar', title='Response') ax = df.plot(kind='bar', title='Response') ax.set_ylim(0, 130) for i, label in enumerate(list(df.index)): height = df.ix[label]['Response'] ax.annotate(str(label), (i, height + 0.3)) plt.show() 

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

  • Удаление специальных символов в рамке данных pandas
  • Python Pandas: как читать только первые n строк CSV-файлов?
  • pandas filter date time: TypeError: не может сравнивать даты смещения с наименьшими и средними значениями
  • Преобразование индекса в MultiIndex (иерархический индекс) в Pandas
  • Python Pandas to_sql, как создать таблицу с первичным ключом?
  • ошибка автокорреляционного сюжета в plt.acorr matplotlib?
  • Python pandas resample добавлены даты, отсутствующие в исходных данных
  • pandas DataFrame снижает индекс при переходе на kdb + (используя qPython API)
  •  
    Interesting Posts for Van-Lav

    Python 2.x – вызов сон на миллисекундах в Windows

    MatLab (или любой другой язык) для преобразования матрицы или csv для размещения значений второго столбца в одну строку, если значение 1-го столбца одинаково?

    UnicodeEncodeError в urllib2

    Различные результаты интеграции с использованием метода Монте-Карло против scipy.integrate.nquad

    Печать Python не использует __repr__, __unicode__ или __str__ для юникодного подкласса?

    Как использовать Emacs с Python

    Python импортирует и использует cdll (с файлом linux .so)

    Как я могу получить пиксельные цвета в matplotlib?

    Как передать имя файла в качестве параметра в свой модуль?

    Как создать новый файл на удаленном узле в базе данных (средство развертывания python)?

    Лучший способ профилировать / оптимизировать веб-сайт на Google appengine

    Как разбить список фраз на слова, чтобы я мог использовать счетчик?

    объединение двух словарей python в одно, когда чистые значения не являются положительными

    Структура проекта для проектов python

    подзаголовки pandas в цикле

    Python - лучший язык программирования в мире.