Python 使用matplotlib模块模拟掷骰子


Posted in Python onAugust 08, 2019

掷骰子

骰子类

# die.py 骰子类模块
from random import randint
class Die():
  """骰子类"""
  def __init__(self, num_sides=6):
    """默认六面的骰子"""
    self.num_sides = num_sides
  def roll(self):
    """掷骰子的方法"""
    return randint(1, self.num_sides)

折线图掷骰子

# die_visual_plot.py 使用plot可视化骰子
import matplotlib.pyplot as plt
from die import Die
# Initialization
die = Die()
# 掷骰子
results = [die.roll() for x in range(1000)]
# 分析结果
frequencies = [results.count(x) for x in range(1, die.num_sides+1)]
# 可视化结果
values = [x for x in range(1, die.num_sides+1)]
plt.plot(values, frequencies, linewidth=2, marker='o', markerfacecolor='yellow', markersize=5, color='b')
# 设置图表
plt.title('Roll a die using matplotlib', fontsize=24)
plt.xlabel('Value', fontsize=14)
plt.ylabel('Frequency', fontsize=14)
# 显示数据
for x, y in zip(values, frequencies):
  # 将y数据加载到(x,y)位置
  plt.text(x, y, y, fontsize=12, color='red', ha='center', va='bottom')
# 显示结果
plt.show()

散点图掷骰子

# die_visual_scatter.py 使用scatter可视化骰子
import matplotlib.pyplot as plt
from die import Die
# Initialization
die = Die()
# 掷骰子
results = [die.roll() for x in range(1000)]
# 分析结果
frequencies = [results.count(x) for x in range(1, die.num_sides+1)]
# 可视化结果
values = [x for x in range(1, die.num_sides+1)]
plt.scatter(values, frequencies, c=frequencies, cmap=plt.cm.Blues, edgecolor='none', s=10)
# 设置图表
plt.title('Roll a die using matplotlib', fontsize=24)
plt.xlabel('Value', fontsize=14)
plt.ylabel('Frequency', fontsize=14)
# 显示数据
for x, y in zip(values, frequencies):
  # 将y数据加载到(x,y)位置
  plt.text(x, y, y, fontsize=12, color='red', ha='center', va='bottom')
# 显示结果
plt.show()

Python 使用matplotlib模块模拟掷骰子 Python 使用matplotlib模块模拟掷骰子

总结

以上所述是小编给大家介绍的Python 使用matplotlib模块模拟掷骰子,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python远程登录代码
Apr 29 Python
python中pygame针对游戏窗口的显示方法实例分析(附源码)
Nov 11 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
Python进度条的制作代码实例
Aug 31 Python
python中的数组赋值与拷贝的区别详解
Nov 26 Python
Python 实现try重新执行
Dec 21 Python
详解django中Template语言
Feb 22 Python
通过代码实例了解Python sys模块
Sep 14 Python
MATLAB 如何求取离散点的曲率最大值
Apr 16 Python
pd.DataFrame中的几种索引变换的实现
Jun 16 Python
Pycharm远程调试原理及具体配置详解
Aug 08 #Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 #Python
python多线程与多进程及其区别详解
Aug 08 #Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 #Python
python实现对图片进行旋转,放缩,裁剪的功能
Aug 07 #Python
Django 实现前端图片压缩功能的方法
Aug 07 #Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 #Python
You might like
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
超级简单的发送邮件程序
2006/10/09 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
2016/12/21 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
关于Python3 类方法、静态方法新解
2019/08/30 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
Johnston & Murphy官网: 约翰斯顿·墨菲牛津总统鞋
2018/01/09 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
北体毕业生求职信
2014/02/28 职场文书
感恩之星事迹材料
2014/05/03 职场文书
化工见习报告范文
2014/10/31 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
python pyhs2 的安装操作
2021/04/07 Python
mysql优化之query_cache_limit参数说明
2021/07/01 MySQL
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫