Есть ли способ построить график штриховки с использованием matplotlib
, используя данные непосредственно из dict?python: построить панель с использованием matplotlib с помощью словаря
Мой ДИКТ выглядит следующим образом:
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
Можете ли вы поделиться, что конкретно не работает? Вы получаете исключение? Какое исключение? Поделитесь как можно больше информации. –
@InbarRose извините, я обновил вопрос с ошибкой, которую он показывает ... что-то касающееся строки или буфера ... Я не понимаю это сообщение об ошибке. – otmezger
Непонятно, чего вы хотите достичь, но в 'ax.bar (D, range (1, len (D) +1,1), 0.5)' Первый аргумент должен быть списком чисел, в вашем случае ' D.values () '. – adrianp