如何解决如何为条形图选择一系列 NumPy 值
我使用 Matplotlib 根据 NumPy 数组中唯一字符串的数量创建了一个条形图。现在我只想在条形图中显示前 10 个最常见的物种。我是 Python 的新手,所以我很难弄清楚。这也是我在这里的第一个问题,所以如果我遗漏了任何重要信息,请告诉我
test_indices = numpy.where((obj.year == 2014) & (obj.native == "Native"))
SpeciesList2014 = numpy.append(SpeciesList2014,obj.species_code[test_indices])
labels,counts = numpy.unique(SpeciesList2014,return_counts=True)
indexSort = numpy.argsort(counts)
plt.bar(labels[indexSort][::-1],counts[indexSort][::-1],align='center')
plt.xticks(rotation=45)
plt.show()
解决方法
您已经在排序数组中拥有值,但您只想选择计数最多的十个值。
您的数组似乎以较大的计数作为最后一个值进行排序,因此您可以利用 numpy 索引作为
plt.bar(labels[indexSort][-1:-11:-1],counts[indexSort][-1:-11;-1],align='center')
其中[a:b:c]
表示a=start index,b=end index c= step,负值表示从数组末尾开始计数。
或者:
n=counts.shape[0]
plt.bar(labels[indexSort][n-11:],counts[indexSort][n-11:],align='center')
按升序绘制。
,帮自己一个忙,了解Numpy Indexing。
在这个简单的例子中,数组的最后 10 个元素用符号 const count = [1,2,3,4];
const count = count.push(5);
// expected output: 4
count.log(count);
表示,您可以从最后一个元素减去十到最后一个元素读取。
[-10:]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。