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决策树分类算法学习
Dec 22 Python
Python读取Json字典写入Excel表格的方法
Jan 03 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
Python3实现计算两个数组的交集算法示例
Apr 03 Python
python程序变成软件的实操方法
Jun 24 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
浅谈python多线程和多线程变量共享问题介绍
Apr 17 Python
Pytorch 使用 nii数据做输入数据的操作
May 26 Python
python如何随机生成高强度密码
Aug 19 Python
Python 中 Shutil 模块详情
Nov 11 Python
Python获取字典中某个key的value
Apr 13 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中文字母数字验证码实现代码
2008/04/25 PHP
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
php遍历数组的方法分享
2012/03/22 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
php判断终端是手机还是电脑访问网站的思路及代码
2013/04/24 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
jQuery的链式调用浅析
2010/12/03 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
python分析作业提交情况
2017/11/22 Python
Numpy数组的保存与读取方法
2018/04/04 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
详解python中的闭包
2020/09/07 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
淘宝活动策划方案
2014/02/06 职场文书
《理想》教学反思
2014/02/17 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
健康教育主题班会
2015/08/14 职场文书
《角的度量》教学反思
2016/02/18 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
python缺失值的解决方法总结
2021/06/09 Python