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 30 Python
pymongo实现多结果进行多列排序的方法
May 16 Python
Python正则表达式经典入门教程
May 22 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
python获取文件路径、文件名、后缀名的实例
Apr 23 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
Python 字符串池化的前提
Jul 03 Python
如何利用python进行时间序列分析
Aug 04 Python
Python 实现RSA加解密文本文件
Dec 30 Python
解决Pycharm 运行后没有输出的问题
Feb 05 Python
pandas数据分组groupby()和统计函数agg()的使用
Mar 04 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
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
JavaScript的类型简单说明
2010/09/03 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
Element Dialog对话框的使用示例
2020/07/26 Javascript
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
python计算牛顿迭代多项式实例分析
2015/05/07 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
解析python的局部变量和全局变量
2019/08/15 Python
python SocketServer源码深入解读
2019/09/17 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
Python如何急速下载第三方库详解
2020/11/02 Python
咖啡蛋糕店创业计划书
2014/01/28 职场文书
自我评价的范文
2014/02/02 职场文书
信息技术教学反思
2014/02/12 职场文书
公司管理建议书范文
2014/03/12 职场文书
利群广告词
2014/03/20 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
大学生活动总结模板
2014/07/02 职场文书
生物学专业求职信
2014/07/23 职场文书
复试通知单模板
2015/04/24 职场文书
考试没考好检讨书
2015/05/06 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书