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 第一步 hello world
Sep 25 Python
python之wxPython菜单使用详解
Sep 28 Python
Python中操作MySQL入门实例
Feb 08 Python
python自然语言编码转换模块codecs介绍
Apr 08 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
python的多重继承的理解
Aug 06 Python
python flask web服务实现更换默认端口和IP的方法
Jul 26 Python
python日志模块logbook使用方法
Sep 19 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
Keras loss函数剖析
Jul 06 Python
浅谈Django前端后端值传递问题
Jul 15 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
关于php循环跳出的问题
2013/07/01 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
php判断目录存在的简单方法
2019/09/26 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
myeclipse安装jQuery插件的方法
2011/03/29 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
JavaScript实现二叉树的先序、中序及后序遍历方法详解
2017/10/26 Javascript
详解JS浏览器事件循环机制
2019/03/27 Javascript
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
react的hooks的用法详解
2020/10/12 Javascript
[15:57]教你分分钟做大人:斧王
2014/10/30 DOTA
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
从Python的源码来解析Python下的freeblock
2015/05/11 Python
Python输入二维数组方法
2018/04/13 Python
python requests post多层字典的方法
2018/12/27 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
python实现经纬度采样的示例代码
2020/12/10 Python
如何理解委托
2012/01/06 面试题
大学生创业计划书的格式要求
2013/12/29 职场文书
班组长竞聘书
2014/03/31 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
小学生优秀评语
2014/12/29 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android