一种统计列表内各元素数量,并用柱状图显示的方法(附代码)

在实验过程中,我们经常需要统计列表中各个元素所占的数量。本文提供一种统计列表内各元素数量的方法

import random
points = np.random.randint(0,10,size=100).tolist()      # 需要被统计的列表
labels = {}
l = []
for i in points:        # 遍历列表 统计所包含的元素
    if i not in l:
        l.append(i)     # 将元素存储在变量l中
l.sort()       # 对l排序
print('l:',l)
for i in l:
    num = points.count(i)       # 遍历变量l 获取对应元素的数量
    labels[str(i)] = num        # 将元素 数量 以键值对装入字典

print('labels:',labels)

k = labels.keys()       # 读取所有键/元素 此时k是一个可迭代序列 但不是列表

用柱状图显示:

col = ['#1f78b4','#7fc97f', '#beaed4', '#fdc086', '#ffff99','#ff0099','#ff09f9','#fff099', '#fff999','#ff9099']
x = np.arange(len(l))
x_axis = np.arange(0,2,0.1)
# 多数据并列柱状图
bar_width = 1
# plt.figure(figsize=(10, 1)) # 宽 高
n = 0
for kk in k:       # 显示有几个文件
    #       横坐标          柱状图高度      柱状图宽    柱状图中心
    p = plt.bar(bar_width*n, labels[str(kk)], 1,      align='center', color=col[n], label=kk)
    #           标注对象    标签位置
    plt.bar_label(  p,  label_type='edge')
    n += 1
plt.xlabel('测试难度')
plt.ylabel('试卷份数')
plt.xticks(x,k)       # 设置横坐标的刻度
# plt.yticks(x_axis)
plt.legend()

图1 随机列表内各元素数量的柱状图

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值