【问题标题】:ipython pylab: print histogram from dictionaryipython pylab:从字典中打印直方图
【发布时间】:2014-09-29 06:44:29
【问题描述】:

我有一本字典d

d = {'apples': 5, 'oranges': 2, 'bananas': 2, 'lemons': 1, 'coconuts': 1}

如何以图形方式显示它,使用 (pylab/matplotlib/ pandas/what-ever-is-best-suitable-for-simple-histograms) 作为直方图

我正在寻找的是与以下内容的图形类比:

X
X
X
X  X  X
X  X  X  X  X
-------------
A  O  B  L  C

【问题讨论】:

标签: python matplotlib pandas ipython


【解决方案1】:

使用matplotlib:

import matplotlib.pyplot as plt
d = {'apples': 5, 'oranges': 2, 'bananas': 2, 'lemons': 1, 'coconuts': 1}

plt.bar(range(len(d)), d.values(), align='center')
plt.xticks(range(len(d)), d.keys(), rotation=25)

或者,让它变得丰富多彩:

import numpy as np
import matplotlib.pyplot as plt
d = {'apples': 5, 'oranges': 2, 'bananas': 2, 'lemons': 1, 'coconuts': 1}

jet = plt.get_cmap('jet')
N = len(d)
plt.bar(range(N), d.values(), align='center', color=jet(np.linspace(0, 1.0, N)))
plt.xticks(range(N), d.keys(), rotation=25)

【讨论】:

  • 实际上,当我在ipython qtconsole --pylab=inline 内绘制绘图时,您的示例不起作用。仅当绘图显示在外部窗口中时才有效。
  • 我已经修改了代码,以便绘图将与 ipython qtconsole 内联显示。
  • 谢谢,但它仍然无法正常工作:plt.bar 绘制直方图(条形图),但使用数字而不是标签。第二条命令plt.xticks 绘制第二个带标签的空图(不带条形)
  • 在评估之前,您必须将所有命令粘贴到一个单元格中。
  • “粘贴到一个单元格中”是什么意思。什么是细胞?
【解决方案2】:

您可以拨打plot 并设置`kind='bar':

In [252]:

d = {'apples': [5], 'oranges':[2], 'bananas': [2], 'lemons': [1], 'coconuts': [1]}
df = pd.DataFrame(d)
df.plot(kind='bar')
Out[252]:
<matplotlib.axes.AxesSubplot at 0xb54b0f0>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-22
    • 2011-12-20
    • 2014-09-10
    • 1970-01-01
    • 2013-10-06
    • 2014-06-29
    • 1970-01-01
    • 2014-02-07
    相关资源
    最近更新 更多