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

投掷一个筛子

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.mzph.cn/news/835894.shtml

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

相关文章

泰迪智能科技大数据开发实训平台功能介绍

大数据开发实训平台是面向实训课和课后训练的编程实训平台,平台底层基于Docker技术,采用容器云部署方案,预装大数据相关课程教学所需的实训环境,拥有1主2从的Hadoop集群,还能够自主定制环境,并能够与实训管…

Java | Leetcode Java题解之第83题删除排序链表中的重复元素

题目: 题解: class Solution {public ListNode deleteDuplicates(ListNode head) {if (head null) {return head;}ListNode cur head;while (cur.next ! null) {if (cur.val cur.next.val) {cur.next cur.next.next;} else {cur cur.next;}}return…

C++调用有依赖库的python函数(VS2017+WIN10+Anaconda虚拟环境)

情况1.在写的函数中依赖了能够pip的库,例如numpy库、torch库,见下面的函数: import numpy as np import torch def add1(a, b):# 确保a和b都是NumPy数组a_array np.array(a) if not isinstance(a, np.ndarray) else ab_array np.array(b) if not isins…

萤火虫优化算法(Firefly Algorithm)

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 算法背景 萤火虫优化算法,是由剑桥大学的Xin-She Yang在2009年提出的一种基于群体智能的优化算法。它的灵感来源于萤火虫在夜晚闪烁…

Blender细节补充

1.饼状菜单,用于快速切换/选择 例如: ~:切换视图 Z:切换着色方式 ,:切换坐标系 .:切换基准点 Shift S:吸附 有两种使用方式: -点选 -滑选,按快捷键…

表的创建与操作表

1. 创建表 创建表有两种方式 : 一种是白手起家自己添,一种是富二代直接继承. 2. 创建方式1 (1). 必须具备条件 CREATE TABLE权限存储空间 (2). 语法格式 CREATE TABLE IF NOT EXISTS 表名(字段1, 数据类型 [约束条件] [默认值],字段2, 数据类型 [约束条件] [默…

node pnpm修改默认包的存储路径

pnpm与npm的区别 PNPM和NPM是两个不同的包管理工具。 NPM(Node Package Manager)是Node.js的官方包管理工具,用于安装、发布和管理Node.js模块。NPM将包安装在项目的node_modules目录中,每个包都有自己的依赖树。 PNPM&#xf…

从0开发、发布油猴脚本(保姆级)

概览 项目中使用conify集成图标,有些内网用户只能使用离线图标,但是如何判断使用的conify集成图标是在线还是离线呢?这个时候就需要一个油猴脚本,作用于iconify官网,对离线图标进行标识。 此篇文章主要从如下几点去梳…

MySQL数据库的初始化(创建库、创建表、向数据库添加测试数据)

MySQL数据库的初始化(创建库、创建表、向数据库添加测试数据) MySQL数据库简介MySQL创建一个新的数据库MySQL创建一张新的数据表简单(设置)表复杂(设置)表 填充测试数据SQL语句mysql>模式下输入的每句sq…

现代信号处理9_正则化(CSDN_20240512)

正则化的引入 解线性方程组: 这项工作有很多种做法,下面介绍两种,如下图所示,有一些数据点需要拟合,拟合的方法有很多。 1) 构造线性函数①,这种函数比较简单,此时 2) 构…

跟TED演讲学英文:Why US politics is broken — and how to fix it by Andrew Yang

Why US politics is broken — and how to fix it Link: https://www.ted.com/talks/andrew_yang_why_us_politics_is_broken_and_how_to_fix_it? Speaker: Andrew Yang Date: April 2024 文章目录 Why US politics is broken — and how to fix itIntroductionVocabularyTr…

wordpress主题 7B2 PRO主题5.4.2免授权直接安装

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 WordPress 资讯、资源、社交、商城、圈子、导航等多功能商用主题:B2 PRO 其设计风格专业且时尚,功能十分强大,包括多栏布局、自定义页面、强大的主…

【JavaEE网络】HTTPS详解:从对称与非对称加密到证书认证

目录 HTTPSHTTPS 是什么“加密” 是什么HTTTPS 的工作过程引入对称加密引入非对称加密引入证书完整流程总结 HTTPS HTTPS 是什么 HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现…

LeetCode - 0088 合并两个有序数组

题目地址:https://leetcode.cn/problems/merge-sorted-array/description/ 引言:话接上回,由于上次面试官着急下班,面试不得不提前终止,这不,他又找我去面试了 面试官:你好,小伙子&a…

C++入门——命名空间、缺省参数、函数重载、引用、内敛函数、auto关键字

目录 前言 一、什么是C 1.1 C关键字(C98) 二、命名空间 2.1 命名空间定义 1.正常命名空间的定义 2.命名空间的定义可以嵌套 3.同名的命名空间会合并 2.2 命名空间的使用 三、C输入&输出 四、缺省参数 4.1 缺省参数概念 4.2 缺省参数分类 五、函数重载 5.1 …

Springboot集成Netflix-ribbon、Enreka实现负载均衡-12

Netflix Ribbon简介 Netflix Ribbon是Netflix发布的云中间层服务开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。 具体来说,Ribbon是一个客户端负载均衡器,可以在配置文件中列出所有的服务…

PostgreSQL的学习心得和知识总结(一百四十三)|深入理解PostgreSQL数据库之Support event trigger for logoff

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…

VirtualBox7安装ubantu server 22.04通过NAT+Only-Host双网卡实现宿主机与虚拟机互通

目录 背景环境安装虚拟机配置网卡修改ssh端口遇到的坑参考文章 背景 时间长没用docker了,有些命令都快忘了,心血来潮想着搞个docker玩一玩,所以需要先搞一个虚拟机,因为之前CentOS用的比较多,所以这次想试一试ubantu。…

openlayers实现绘制图标,并实现图标的聚合功能

点聚合说明 点聚合功能是指将地图上密集的点数据聚合成一个更大的点或者其他形状,以改善地图的可视化效果和性能。点聚合功能通常用于在地图上显示大量的点标记,例如地图上的POI(兴趣点)、传感器数据等。通过点聚合功能&#xff…

[单机]成吉思汗3_GM工具_VM虚拟机

稀有端游成吉思汗1,2,3单机版虚拟机一键端完整版 本教程仅限学习使用,禁止商用,一切后果与本人无关,此声明具有法律效应!!!! 教程是本人亲自搭建成功的,绝对是完整可运行的&#x…