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解析文件示例
Jan 23 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
深入理解Javascript中的this关键字
Mar 27 Python
详解Python的Django框架中的通用视图
May 04 Python
详解Python装饰器由浅入深
Dec 09 Python
对pandas中Series的map函数详解
Jul 25 Python
在Python中使用Neo4j的方法
Mar 14 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
Python文件操作函数用法实例详解
Dec 24 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
LeetCode189轮转数组python示例
Aug 05 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
php heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
PHP中的替代语法介绍
2015/01/09 PHP
php生成短域名函数
2015/03/23 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
jquery自定义插件开发之window的实现过程
2016/05/06 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
jqueryUI tab标签页代码分享
2017/10/09 jQuery
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
npm 更改默认全局路径以及国内镜像的方法
2018/05/16 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
跟老齐学Python之从格式化表达式到方法
2014/09/28 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
Python通用循环的构造方法实例分析
2018/12/19 Python
Python单元和文档测试实例详解
2019/04/11 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
对DJango视图(views)和模版(templates)的使用详解
2019/07/17 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
计算机开发个人求职信范文
2013/09/26 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers