微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为条形图选择一系列 NumPy 值

如何解决如何为条形图选择一系列 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:]

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?