python - 无法使用灵活类型 plt.hist 执行 reduce

标签 python text matplotlib word-frequency

我有一个包含 1000 多个元素及其各自频率的数据集。我需要绘制前 10 个出现元素的直方图。
我做到了:

  top_words = Counter(my_data).most_common()  
  top_words_10 = top_words[:10]  
  plt.hist(top_words_10,label='True')    

得到了这个错误:

TypeError                                   
  Traceback (most recent call last) 
<ipython-input-29-ff974b3a2354> in <module>()  
      5  print top_words[:10]  
      6   
----> 7 plt.hist(top_words_10)    
C:\Anaconda\lib\site-packages\numpy\core\_methods.pyc in _amin(a, axis, out, keepdims)  
     12 def _amin(a, axis=None, out=None, keepdims=False):  
     13     return um.minimum.reduce(a, axis=axis,  
---> 14                             out=out, keepdims=keepdims)  
     15   
     16 def _sum(a, axis=None, dtype=None, out=None, keepdims=False):  


TypeError: cannot perform reduce with flexible type

有什么想法吗??我的数据如下所示:

[(' whitefield', 65299), (' bellandur', 57061), (' kundalahalli', 51769), (' marathahalli', 50639), (' electronic city', 44041), (' sarjapur road junction', 34164), (' indiranagar 2nd stage', 32459), (' malleswaram', 32171), (' yelahanka main road', 28901), (' domlur', 28869)]

最佳答案

您收到此错误是因为您需要将数据转换为数字类型。您的数组包含字符串。

import matplotlib.pyplot as plt
import numpy as np

data = [(' whitefield', 65299), (' bellandur', 57061), (' kundalahalli', 51769), (' marathahalli', 50639),
(' electronic city', 44041), (' sarjapur road junction', 34164), (' indiranagar 2nd stage', 32459),
(' malleswaram', 32171), (' yelahanka main road', 28901), (' domlur', 28869)]

freequency = []
words = []

for line in data:
    freequency.append(line[1])
    words.append(line[0])

y_axis = np.arange(1, len(words) + 1, 1)

plt.barh(y_axis, freequency, align='center')
plt.yticks(y_axis, words)
plt.show()

关于python - 无法使用灵活类型 plt.hist 执行 reduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21472243/

相关文章:

python - `length` 和 `name` 排序参数不符合我的要求

javascript - 动态更改跨度的文本格式

python - 增加 Matplotlib 中 x 轴标签的空间

python - 在python websocket客户端中,为什么ping_interval应该大于ping_timeout

python - 将 mysql 连接到 django

python - add如何使django post_save信号仅在创建期间运行

python - 在条形图中对齐 x 轴刻度

python - 将文本中的值替换为 python 字典中的整数值并求其总和

text - 删除属于其他字符串的子字符串

python - Matplotlib,图例符号之间的垂直空间