如何创建直方图?

时间:2017-11-03 21:27:57

标签: python matplotlib histogram

我有以下数据框。我想通过排序推文数量来创建一个简单的直方图。

**Source**        **Number of Tweets**
Twitter for Android 59472
Twitter for iPhone  27244
Twitter Web Client  9239
Twitter Lite    6479
Twitter for iPad    1159
TweetCaster for Android 407
Twitter for Windows Phone   233
TweetDeck   219
Mobile Web (M2) 197
Twitter for Windows 134
Commun.it   121
Facebook    18
Media Studio    16
MeTweets for Windows Phone  14

这是代码;

my_plot = data.sort(columns='Number of Tweets',ascending=False).plot(
                    kind='bar',legend=None,title="Tweet Numbers Per Source")
my_plot.set_xlabel("Source")
my_plot.set_ylabel("Tweet Numbers")

但我收到了警告:

/home/bd/anaconda3/lib/python3.5/site-packages/ipykernel/__main__.py:1:
    FutureWarning: sort(columns=....) is deprecated, use sort_values(by=.....)
if __name__ == '__main__':`

另外,当我编码时:

my_plot.show()

我收到以下错误消息。

AttributeError: 'AxesSubplot' object has no attribute 'show'

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

使用直方图快速纠正错误: 我假设您使用matplotlib库作为直方图,并且您导入了这样的库:

import matplotlib.pyplot as plt

然后尝试在最后运行此命令:

plt.show()

而不是:

my_plot.show()

使用此plt.show方法而不引用包含数据的特定对象是违反直觉的。

检查this link以获取示例直方图。他们使用numpy和matplotlib。 接下来你想使用条形图,而不是直方图。直方图需要数百到数千个数字,并将它们分类为若干列,例如5个。您有预定义的列,它们的值很高。这可以使用条形图显示。检查条形图here的示例。