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解释执行原理分析
Aug 22 Python
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
python dlib人脸识别代码实例
Apr 04 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 Python
Python shutil模块用法实例分析
Oct 02 Python
pytorch:实现简单的GAN示例(MNIST数据集)
Jan 10 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 Python
Python基于execjs运行js过程解析
Nov 27 Python
教你如何使用Python Tkinter库制作记事本
Jun 10 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连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
php图片裁剪函数
2018/10/31 PHP
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
python多线程semaphore实现线程数控制的示例
2020/08/10 Python
Python 使用office365邮箱的示例
2020/10/29 Python
python 装饰器的基本使用
2021/01/13 Python
HTML+CSS3 模仿Windows7 桌面效果
2010/06/17 HTML / CSS
HTML5 画布canvas使用方法
2016/03/18 HTML / CSS
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
自荐信的五个重要部分
2013/10/29 职场文书
电子商务应届生自我鉴定
2014/01/13 职场文书
年度考核评语
2014/01/19 职场文书
个人优缺点自我评价
2014/01/27 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
教研活动总结
2014/04/28 职场文书
机电一体化应届生求职信
2014/08/09 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
python 调用js的四种方式
2021/04/11 Python
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python
【海涛DOTA解说】EVE女子战队独家录像加ZSMJ神牛两连发
2022/04/01 DOTA
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers