python: постройте график, используя matplotlib, используя словарь

Есть ли способ построить график matplotlib с использованием matplotlib используя данные непосредственно из dict?

Мой dict выглядит следующим образом:

 D = {u'Label1':26, u'Label2': 17, u'Label3':30} 

я ожидал

 fig = plt.figure(figsize=(5.5,3),dpi=300) ax = fig.add_subplot(111) bar = ax.bar(D,range(1,len(D)+1,1),0.5) 

работать, но это не так.

Вот ошибка:

 >>> ax.bar(D,range(1,len(D)+1,1),0.5) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line 4904, in bar self.add_patch(r) File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line 1570, in add_patch self._update_patch_limits(p) File "/usr/local/lib/python2.7/site-packages/matplotlib/axes.py", line 1588, in _update_patch_limits xys = patch.get_patch_transform().transform(vertices) File "/usr/local/lib/python2.7/site-packages/matplotlib/patches.py", line 580, in get_patch_transform self._update_patch_transform() File "/usr/local/lib/python2.7/site-packages/matplotlib/patches.py", line 576, in _update_patch_transform bbox = transforms.Bbox.from_bounds(x, y, width, height) File "/usr/local/lib/python2.7/site-packages/matplotlib/transforms.py", line 786, in from_bounds return Bbox.from_extents(x0, y0, x0 + width, y0 + height) TypeError: coercing to Unicode: need string or buffer, float found 

  • Чтение наименее значимых бит в Python
  • argparse store false, если не указано
  • SQLAlchemy Соединение с проблемой подзапроса
  • Нет модуля с именем pip.req
  • Доступ к декоратору в родительском классе из дочернего элемента в Python
  • Группировка ежедневных данных по месяцам в python / pandas, а затем нормализация
  • Создание pandas DataFrame из столбцов других DataFrames с похожими индексами
  • Есть ли оператор для вычисления процента в Python?
  • 2 Solutions collect form web for “python: постройте график, используя matplotlib, используя словарь”

    Вы можете сделать это в двух строках, сначала построив график, а затем установив соответствующие тики:

     import matplotlib.pyplot as plt D = {u'Label1':26, u'Label2': 17, u'Label3':30} plt.bar(range(len(D)), D.values(), align='center') plt.xticks(range(len(D)), D.keys()) plt.show() 

    Обратите внимание, что предпоследняя строка должна читать plt.xticks(range(len(D)), list(D.keys())) в python3, потому что D.keys() возвращает генератор, который matplotlib не может использовать напрямую.

    Для дальнейшего использования вышеуказанный код не работает с Python 3. Для Python 3, D.keys () необходимо преобразовать в список.

     import matplotlib.pyplot as plt D = {u'Label1':26, u'Label2': 17, u'Label3':30} plt.bar(range(len(D)), D.values(), align='center') plt.xticks(range(len(D)), list(D.keys())) plt.show() 
    Python - лучший язык программирования в мире.