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中正则表达式详解
May 17 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
Feb 13 Python
详解python校验SQL脚本命名规则
Mar 22 Python
在django中图片上传的格式校验及大小方法
Jul 28 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
Mar 28 Python
python3.6.8 + pycharm + PyQt5 环境搭建的图文教程
Jun 11 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
利于python脚本编写可视化nmap和masscan的方法
Dec 29 Python
python re模块常见用法例举
Mar 01 Python
Python离线安装openpyxl模块的步骤
Mar 30 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设计模式中工厂模式详细介绍
2013/05/15 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
jQuery大于号(>)选择器的作用解释
2015/01/13 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
2016/12/07 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
Vue源码探究之状态初始化
2018/11/14 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
Python利用pyHook实现监听用户鼠标与键盘事件
2014/08/21 Python
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
Django中使用group_by的方法
2015/05/26 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
对Python信号处理模块signal详解
2019/01/09 Python
python 实现turtle画图并导出图片格式的文件
2019/12/07 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
运动会入场词100字
2014/02/06 职场文书
品质主管岗位职责
2014/03/16 职场文书
跑操口号
2014/06/12 职场文书
党委班子剖析材料
2014/08/21 职场文书
最美家庭活动方案
2014/08/31 职场文书
小学假期安全广播稿
2014/09/28 职场文书
北京天坛导游词
2015/02/12 职场文书
2015年妇女工作总结
2015/05/14 职场文书
投诉信格式范文
2015/07/02 职场文书
2015初中教导处工作总结
2015/07/21 职场文书
python前后端自定义分页器
2022/04/13 Python