python数据可视化pygal模拟掷骰子实现示例

目录
  • 可视化包Pygal生成可缩放矢量图形文件
    • 分析结果,计算每个点数出现的次数
    • 绘制直方图
    • 同时投掷两个骰子
    • 同时投掷两个面数不同骰子

可视化包Pygal生成可缩放矢量图形文件

可以在尺寸不同的屏幕上自动缩放,显示图表

#安装pygal
pip install pygal
'''
想要了解Pygal可生成什么样的图表,可访问http://www.pygal.org/
单击document,点击chart types,每个示例都包含源代码
'''
from random import randint
#创建一个骰子的类
class Die():
    def __init__(self,num_sides = 6):
        self.num_sides = num_sides
    def roll(self):
        #返回一个位于1和骰子面数之间的随机值
        return randint(1, self.num_sides)
#掷骰子
die = Die()
#创建一个列表,将结果存储在一个列表中
results = []
 #投100次
for roll_num in range(100):
    result = die.roll()
    results.append(result)
print(results)
[3, 4, 2, 2, 6, 5, 5, 5, 2, 3, 1, 4, 3, 2, 1, 2, 3, 6, 6, 5, 5, 3, 2, 3, 1, 1, 4, 1, 4, 6, 1, 6, 2, 3, 4, 6, 2, 5, 5, 1, 6, 1, 5, 4, 3, 3, 4, 5, 6, 3, 5, 1, 4, 3, 5, 6, 6, 6, 4, 6, 5, 6, 5, 4, 6, 3, 1, 4, 1, 4, 2, 1, 1, 4, 4, 4, 2, 3, 1, 4, 6, 2, 1, 5, 6, 2, 2, 6, 6, 3, 6, 2, 6, 6, 4, 4, 2, 1, 1, 6]

分析结果,计算每个点数出现的次数

frequencies = []
for value in range(1, die.num_sides+1):
    frequency = results.count(value)
    frequencies.append(frequency)
print(frequencies)
[10, 23, 13, 9, 26, 19]

绘制直方图

import pygal
hist = pygal.Bar()
hist.title = 'results of rolling one d6 100 times'
hist.x_lables = ['1', '2', '3', '4', '5', '6']
hist.x_title = 'result'
hist.y_title = 'frequency of result'
hist.add('d6', frequencies)
#将图渲染为SVG文件,需要打开浏览器,才能查看生成的直方图
hist.render_to_file('die_visual.svg')

同时投掷两个骰子

from random import randint
#创建一个骰子的类
class Die():
    def __init__(self,num_sides = 6):
        self.num_sides = num_sides
    def roll(self):
        #返回一个位于1和骰子面数之间的随机值
        return randint(1, self.num_sides)
#掷骰子
die1 = Die()
die2 = Die()
#创建一个列表,将结果存储在一个列表中
results = []
 #投100次
for roll_num in range(100):
    result = die1.roll() + die2.roll()
    results.append(result)
print(results)
#分析结果,计算每个点数出现的次数
frequencies = []
max_result = die1.num_sides + die2.num_sides
for value in range(1, max_result+1):
    frequency = results.count(value)
    frequencies.append(frequency)
print(frequencies)
#绘制直方图
import pygal
hist = pygal.Bar()
hist.title = 'results of rolling one d6 dice 100 times'
hist.x_lables = ['2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
hist.x_title = 'result'
hist.y_title = 'frequency of result'
hist.add('d6 + d6', frequencies)
#将图渲染为SVG文件,需要打开浏览器,才能查看生成的直方图
hist.render_to_file('die_visual.svg')
[4, 7, 4, 5, 8, 4, 3, 6, 8, 9, 8, 11, 9, 11, 8, 8, 5, 6, 10, 5, 11, 7, 4, 3, 12, 12, 7, 2, 4, 9, 9, 5, 7, 10, 4, 7, 4, 6, 5, 6, 7, 2, 7, 9, 7, 6, 11, 5, 9, 6, 11, 4, 8, 10, 7, 9, 5, 4, 3, 7, 4, 10, 5, 7, 2, 6, 4, 2, 2, 5, 5, 9, 6, 3, 6, 10, 12, 7, 4, 11, 8, 6, 10, 5, 7, 5, 5, 7, 9, 4, 11, 6, 7, 8, 6, 11, 6, 4, 3, 12]
[0, 5, 5, 14, 13, 13, 15, 8, 9, 6, 8, 4]

同时投掷两个面数不同骰子

from random import randint
#创建一个骰子的类
class Die():
    def __init__(self,num_sides = 6):
        self.num_sides = num_sides
    def roll(self):
        #返回一个位于1和骰子面数之间的随机值
        return randint(1, self.num_sides)
#掷骰子
die1 = Die()
die2 = Die(10)
#创建一个列表,将结果存储在一个列表中
results = []
 #投100次
for roll_num in range(100):
    result = die1.roll() + die2.roll()
    results.append(result)
print(results)
#分析结果,计算每个点数出现的次数
frequencies = []
max_result = die1.num_sides + die2.num_sides
for value in range(1, max_result+1):
    frequency = results.count(value)
    frequencies.append(frequency)
print(frequencies)
#绘制直方图
import pygal
hist = pygal.Bar()
hist.title = 'results of rolling one d10 dice 100 times'
hist.x_lables = ['2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14','15','16']
hist.x_title = 'result'
hist.y_title = 'frequency of result'
hist.add('d6 + d10', frequencies)
#将图渲染为SVG文件,需要打开浏览器,才能查看生成的直方图
hist.render_to_file('die_visual.svg')
[5, 3, 6, 13, 8, 9, 10, 11, 11, 4, 5, 14, 11, 10, 11, 8, 14, 12, 16, 8, 9, 11, 7, 11, 9, 2, 8, 9, 9, 10, 7, 8, 12, 11, 8, 12, 9, 9, 10, 11, 8, 14, 10, 12, 10, 7, 12, 5, 4, 8, 6, 7, 7, 11, 9, 16, 6, 13, 6, 10, 6, 7, 16, 9, 14, 5, 7, 12, 8, 9, 11, 11, 6, 11, 5, 8, 11, 16, 4, 10, 5, 10, 13, 4, 9, 9, 11, 9, 11, 13, 7, 13, 13, 5, 5, 4, 5, 3, 12, 14]
[0, 1, 2, 5, 9, 6, 8, 10, 13, 9, 15, 7, 6, 5, 0, 4]

以上就是python数据可视化pygal模拟掷骰子实现示例的详细内容,更多关于python pygal模拟掷骰子的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python学习之用pygal画世界地图实例

    有关pygal的介绍和安装,大家可以参阅<pip和pygal的安装实例教程>,然后利用pygal实现画世界地图.代码如下: #coding=utf-8 import json import pygal.maps.world #Pygal样式保存在模块style中,包括RotateStyle调整颜色和LightColorizedStyle加亮颜色 #也可以写成from pygal.style import LightColorizedStyle, RotateStyle import pygal

  • python的pygal模块绘制反正切函数图像方法

    python是一个很有趣的语言,可以在命令行窗口运行.python中有很多功能强大的模块,这篇经验告诉你,如何使用python的pygal模块绘制反正切函数图像. 1.简介 pygal是一个SVG图表库.SVG是一种矢量图格式.全称Scalable Vector Graphics -- 可缩放矢量图形. 用浏览器打开svg,可以方便的与之交互. 2.pygal安装 Windows下pygal的安装比pip还要简单,直接在命令模式执行python -m pip install --user pyg

  • Python编程pygal绘图实例之XY线

    安装pygal,可参阅:pip和pygal的安装实例教程 基本XY线: import pygal from math import cos """ XY线是将各个点用直线连接起来的折线图 需提供一个横纵坐标元组作为元素的列表 """ xy_chart = pygal.XY() xy_chart.title = 'XY Cosinus' xy_chart.add('x = cos(y)', [(cos(x / 10.), x / 10.) for

  • Python中的pygal安装和绘制直方图代码分享

    有关pygal的安装,大家可以参阅<pip和pygal的安装实例教程>. 直方图: 直方图是一个特殊的条,它可以取3个数值:纵坐标高度,横坐标开始和横坐标结束. import pygal hist = pygal.Histogram() hist.add('Wide bars', [(5, 0, 10), (4, 5, 13), (2, 0, 15)]) hist.add('Narrow bars', [(10, 1, 2), (12, 4, 4.5), (8, 11, 13)]) hist.

  • Python学习pygal绘制线图代码分享

    pygal的安装大家可以参阅:pip和pygal的安装实例教程 线图: import pygal line_chart = pygal.Line() line_chart.title = 'Browser usage evolution (in %)' line_chart.x_labels = map(str, range(2002, 2013)) line_chart.add('Firefox', [None, None, 0, 16.6, 25, 31, 36.4, 45.5, 46.3,

  • Python中pygal绘制雷达图代码分享

    pygal的安装和简介,大家可以参阅<pip和pygal的安装实例教程>,下面看看通过pygal实现绘制雷达图代码示例. 雷达图(Radar): import pygal radar_chart = pygal.Radar() radar_chart.title = 'V8 benchmark results' radar_chart.x_labels = ['Richards', 'DeltaBlue', 'Crypto', 'RayTrace', 'EarleyBoyer', 'RegEx

  • python数据可视化pygal模拟掷骰子实现示例

    目录 可视化包Pygal生成可缩放矢量图形文件 分析结果,计算每个点数出现的次数 绘制直方图 同时投掷两个骰子 同时投掷两个面数不同骰子 可视化包Pygal生成可缩放矢量图形文件 可以在尺寸不同的屏幕上自动缩放,显示图表 #安装pygal pip install pygal ''' 想要了解Pygal可生成什么样的图表,可访问http://www.pygal.org/ 单击document,点击chart types,每个示例都包含源代码 ''' from random import randi

  • Python 使用matplotlib模块模拟掷骰子

    掷骰子 骰子类 # die.py 骰子类模块 from random import randint class Die(): """骰子类""" def __init__(self, num_sides=6): """默认六面的骰子""" self.num_sides = num_sides def roll(self): """掷骰子的方法"&q

  • Pycharm中安装Pygal并使用Pygal模拟掷骰子(推荐)

    使用Python可视化Pygal包来生成可缩放的矢量图形文件! 对于在尺寸不同的屏幕上显示图标,它们将自动缩放以适合观看者的屏幕,如果以在线的方式使用图标,建议使用Pygal来生成,这样在任何设备上显示都会很美观!!! 1.安装Pygal 安装Pygal有好几种办法这边简略带过!!! 介绍一种在pycharm中直接安装的方法! 1.在File文件中打开Settings 2.找到Project:untitled打开Projiect lnterpreter右上方的+号 3.输入我们要安装的Pygal

  • python数据可视化使用pyfinance分析证券收益示例详解

    目录 pyfinance简介 pyfinance包含六个模块 returns模块应用实例 收益率计算 CAPM模型相关指标 风险指标 基准比较指标 风险调整收益指标 综合业绩评价指标分析实例 结语 pyfinance简介 在查找如何使用Python实现滚动回归时,发现一个很有用的量化金融包--pyfinance.顾名思义,pyfinance是为投资管理和证券收益分析而构建的Python分析包,主要是对面向定量金融的现有包进行补充,如pyfolio和pandas等. pyfinance包含六个模块

  • Python Tkinter实例——模拟掷骰子

    什么是Tkinter? Tkinter 是 Python 的标准 GUI 库.Python 使用 Tkinter 可以快速的创建 GUI 应用程序. 由于 Tkinter 是内置到 python 的安装包中.只要安装好 Python 之后就能 import Tkinter 库.适合初学者入门.小型应用的开发 .简单的代价就是功能薄弱了,有相当多的需求需要依赖其他的库.不像PyQT.wxPython这些功能强大的框架. 需要导入的模块 Tkinter:建立图形界面 Random:生成随机数 Ima

  • Python使用random模块实现掷骰子游戏的示例代码

    引入内容 根据人民邮电出版社出版的<Python程序设计现代设计方法>P102习题中的第7题--掷骰子游戏,进行代码编写. 题目要求 一盘游戏中,两人轮流掷骰子5次,并将每次掷出的点数累加,5局之后,累计点数较大者获胜,点数相同则为平局.根据此规则实现掷骰子游戏,并算出50盘之后的胜利者( 50盘中嬴得盘数最多的,即最终胜利者). 审题: 共有50盘游戏.一盘游戏有5局,每一局双方各掷骰子一次,5局结束以后统计分数,分数高的一方获胜.至此,一盘游戏结束.50盘游戏结束后,赢得盘数最多的一方为最

  • python数据可视化绘制世界人口地图

    目录 前言 获取两个字母的国别码 制作世界地图 绘制完整的世界人口地图 根据人口数量将国家分组 根据Pygal设置世界地图的样式 前言 数据来源:population_data.json, 先看一下数据长啥样 [ { "Country Name": "Arab World", "Country Code": "ARB", "Year": "1960", "Value"

  • Python数据可视化之简单折线图的绘制

    目录 创建RandomWalk类 选择方向 绘制随机漫步图 模拟多次随机漫步 给点着色 突出起点和终点 增加点数 调整尺寸以适用屏幕 创建RandomWalk类 为模拟随机漫步,我们将创建一个RandomWalk类,随机选择前进方向,这个类有三个属性,一个存储随机漫步的次数,另外两个存储随机漫步的每个点的x,y坐标,每次漫步都从点(0,0)出发 from random import choice class RandomWalk(): '''一个生成随机漫步数据的类''' def __init_

  • 基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解

    Pyplot matplotlib.pyplot是一个命令型函数集合,它可以让我们像使用MATLAB一样使用matplotlib.pyplot中的每一个函数都会对画布图像作出相应的改变,如创建画布.在画布中创建一个绘图区.在绘图区上画几条线.给图像添加文字说明等.下面我们就通过实例代码来领略一下他的魅力. import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.ylabel('some numbers') plt.show() 上图是我们通

  • Python数据可视化正态分布简单分析及实现代码

    Python说来简单也简单,但是也不简单,尤其是再跟高数结合起来的时候... 正态分布(Normaldistribution),也称"常态分布",又名高斯分布(Gaussiandistribution),最早由A.棣莫弗在求二项分布的渐近公式中得到.C.F.高斯在研究测量误差时从另一个角度导出了它.P.S.拉普拉斯和高斯研究了它的性质.是一个在数学.物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力. 正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人

随机推荐