数据可视化训练第四天(模拟投掷筛子并且统计频次)

投掷一个筛子

import matplotlib.pyplot as plt
from random import randint
import numpy as npclass Die:"""模拟投掷筛子"""def __init__(self,num_sides=6):self.num_sides=num_sidesdef roll(self):return randint(1,self.num_sides)num=100000#投掷1000次
num_sides=12
results=[]
die=Die(num_sides)#创建一个6面筛子for value in range(num):results.append(die.roll())frequencies=[]for i in range(1,num_sides+1):frequencies.append(results.count(i))fig,ax =plt.subplots()
x_values=list(range(1,num_sides+1))
p=ax.bar(x_values,frequencies,label='frequency')ax.set_title("The frequency of chromophores")
ax.set_xlabel('surface')
ax.set_ylabel('quanity')
#设置bar的格式
ax.bar_label(p,label_type='edge')ax.legend()plt.show()

在这里插入图片描述

投掷两个筛子

import matplotlib.pyplot as plt
from random import randint
import numpy as npclass Die:"""模拟投掷筛子"""def __init__(self,num_sides=6):self.num_sides=num_sidesdef roll(self):return randint(1,self.num_sides)num=100000#投掷1000次
num_sides=6
results=[]
die=Die(num_sides)#创建一个6面筛子
die1=Die(num_sides)for value in range(num):results.append(die.roll()+die1.roll())frequencies=[]for i in range(1,num_sides*2+1):frequencies.append(results.count(i))#绘图
fig,ax =plt.subplots()
x_values=list(range(1,num_sides*2+1))
p=ax.bar(x_values,frequencies,label='frequency')ax.set_title("The frequency of chromophores")
ax.set_xlabel('surface')
ax.set_ylabel('quanity')
ax.set_xticks(x_values)
#设置bar的格式
ax.bar_label(p,label_type='edge')ax.legend()plt.show()

在这里插入图片描述

重构代码

import matplotlib.pyplot as plt
from random import randint
import numpy as npclass Die:"""模拟投掷筛子"""def __init__(self,num_sides=[6]):self.num_sides=num_sidesself.results=[]def roll(self):"""返回投掷筛子的总点数"""result=0for value in self.num_sides:result+=randint(1,value)return resultdef roll_many(self,num=1000):"""投掷多次返回每次投掷的结果"""for value in range(num):self.results.append(self.roll())return self.resultsdef get_sum(self):"""返回点数的最大和"""sum_=0for value in self.num_sides:sum_+=valuereturn sum_def get_frenquencies(self):"""获得每个点数出现的频次"""frequencise=[]sum_=self.get_sum()for i in range(1,sum_+1):frequency=self.results.count(i)frequencise.append(frequency)return frequencisenum=100000#投掷1000次
#可以投掷任意数量的筛子
num_sides=[6,6,2]
die=Die(num_sides=num_sides)
results=die.roll_many(num)
frequencise=die.get_frenquencies()
print(frequencise)#绘图
fig,ax =plt.subplots()
x_values=list(range(1,die.get_sum()+1))
p=ax.bar(x_values,frequencise,label='frequency')ax.set_title("The frequency of chromophores")
ax.set_xlabel('surface')
ax.set_ylabel('quanity')
ax.set_xticks(x_values)
#设置bar的格式
ax.bar_label(p,label_type='edge')ax.legend()plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691423.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

矩阵稀疏扫描 - 矩阵

系列文章目录 文章目录 系列文章目录前言一、题目描述二、输入描述三、输出描述四、Java代码五、测试用例提示 前言 本人最近再练习算法,所以会发布一些解题思路,希望大家多指教 一、题目描述 如果矩阵中的许多系数都为零,那么该矩阵就是稀…

最美博客POETIZE个人博客系统源码

源码说明: POETIZE个人博客系统源码 | 最美博客 这是一个基于SpringBoot、Vue2和Vue3的开源项目,支持移动端自适应,并具备完善的前台和后台管理功能。 网站分为两个模块: 1. 博客系统:包括文章、表白墙、图片墙、收…

万能自定义表单系统源码开源版 支持普通表单、付费报名、预约服务等三合一功能

源码简介 高效、灵活地收集和管理数据对于各项运营和决策至关重要,方便了各行业对数据收集的多样化需求。分享一个万能自定义表单系统源码开源,该系统拥有强大的自定义功能和广泛的适用性,支持普通表单、付费报名、预约服务等三合一功能。 …

Python - 深度学习系列33 - ollama_langchain_ppt生成

说明 只是为了速记一下这个实践过程。整体上说,这个结果并不是那么好用,但有一些可以借鉴的地方。 先看结果: 生成的PPT 说的直白点,就是用大模型生成了一堆没太有意义的文字,然后做成ppt。所以实用是不成的&#…

网络 | 应用层-websocket协议报文格式解析

websocket的官方文档为rfc(request for comments),是网络协议的规范文档。它包含了许多计算机世界的核心知识 除了这里的websocket,它里边还包含我们熟知的http,tcp等协议的解析。 websocket协议对应的编号是rfc 6455 websocket协议格式解析 由图可知&a…

EPAI手绘建模APP工程图顶部工具栏

7、工程图 图 302 工程图 工程图包括顶部常用工具栏、右侧工程图工具栏、左侧模型列表栏、中间的工程图。 (1) 常用工具栏 ① 删除,选中场景中工程图元素后,删除。可以选择多个工程图元素同时删除。 ② 设置,打开工程图设置页面&#xff0…

Pikachu 靶场 RCE 通关解析

前言 Pikachu靶场是一种常见的网络安全训练平台,用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境,供安全专业人士、学生和爱好者练习和测试他们的技能。 Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术,…

C++ vs Rust vs Go 性能比较

本文对C、Rust和Go三种编程语言编写的gunzip程序进行了性能比较,通过基准测试试图尽可能公平的比较它们的性能。原文: Performance — C vs Rust vs Go 本文将通过一些基准测试,比较 C 和 Rust 以及 Go 编写的相同程序的性能。我们将尽最大努力将语言差异…

RFID在汽车制造中的应用如何改变行业

随着工业4.0和中国制造2025的推进,企业对于智能化、自动化的需求日益增长,RFID射频技术在制造业中已经相当普遍了。在如今这瞬息万变的行业与时代中,RFID技术可以帮助企业获得竞争优势,简化日益复杂的生产流程,推动企业…

No module named ‘sklearn.metrics.ranking‘ 解决方法

错误代码 from sklearn.metrics.classification import * from sklearn.metrics.ranking import * 错误原因 sklearn这个文件夹下的_classification和_ranking前面有下划线! 解决方法 第一步:找到sklearn位置,可以打开命令行输入 pip sh…

不错的招聘时候要注意的知识

来自《行为心理学在团队管理中的应用》行为心理学在团队管理中的应用_哔哩哔哩_bilibili

train_gpt2_fp32.cu - layernorm_forward_kernel3

源码 __global__ void layernorm_forward_kernel3(float* __restrict__ out, float* __restrict__ mean, float* __restrict__ rstd,const float* __restrict__ inp, const float* __restrict__ weight,const float* __restrict__ bias, int N, int C) {cg::thread_block bl…