13. Python3 使用Pygal生成矢量图形文件

用Pygal模拟掷骰子:Python可视化骰子结果
本文介绍如何在Python中使用Pygal库模拟掷骰子过程,通过可视化展示两个骰子1000次投掷的结果分布。学习了如何创建骰子类、收集结果、分析频率并生成矢量图形文件。

简介

Pygal是Python可视化包, 可以用来生成矢量图形文件, 专注于在数字设备上显示的图标.

官方文档: http://www.pygal.org/en/stable/

安装Pygal

默认是从国外的pip源下载软件包, 下载速度太慢, 可以考虑切换为国内的pip源.

https://pypi.tuna.tsinghua.edu.cn/simple/	# 清华大学
https://mirrors.aliyun.com/pypi/simple/		# 阿里云
https://pypi.douban.com/simple/			# 豆瓣
https://pypi.mirrors.ustc.edu.cn/simple/	# 中国科学技术大学
https://pypi.hustunique.com/			# 华中科技大学

怎么永久切换pip源, 请读者自行百度, 下面使用临时方法

Linux或mac

# -i 是指临时从中国科学技术大学的pip源 中下载软件包
pip3 install --user pygal -i https://pypi.mirrors.ustc.edu.cn/simple/

windows

python -m pip install --user pygal 

检查是否安装成功: 进入python3 工作台, 测试 import pygal命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HjhKWQBZ-1637590583120)(/upload/2020/10/%E6%88%AA%E5%B1%8F2020-10-22%20%E4%B8%8B%E5%8D%881.36.47-9f0a572d6a4c4247817e40c524c3e5a7.png)]

没有报错就安装成功.

使用Pygal模拟掷骰子

创建一个骰子类(die.py)

from random import randint


class Die:
	"""表示一个骰子的类"""

	def __init__(self, num_sides=6):
		"""骰子默认为6面"""
		self.num_sides = num_sides

	def roll(self):
		"""返回一个位于骰子面数的随机的值,默认1-6"""
		return randint(1, self.num_sides)

掷骰子类(die_visual.py)

import pygal
from die import Die

# 创建两个骰子
die1 = Die()
die2 = Die()

# 掷几次骰子,并将结果存储在一个列表中
results1 = []
results2 = []
for roll_num in range(1000):
	result1 = die1.roll()
	result2 = die2.roll()
	results1.append(result1)
	results2.append(result2)

# 分析结果
# 分析第一个骰子的结果
frequencies1 = []
for value in range(1, die1.num_sides + 1):
	# count() 统计一个值在列表中出现的次数
	frequency1 = results1.count(value)
	frequencies1.append(frequency1)

# 分析第二个骰子的结果
frequencies2 = []
for value in range(1, die2.num_sides + 1):
	# count() 统计一个值在列表中出现的次数
	frequency2 = results2.count(value)
	frequencies2.append(frequency2)

# 对结果进行可视化
hist = pygal.Bar()

hist.title = "两个骰子随机滚动1000次的结果"
hist.x_labels = ['1', '2', '3', '4', '5', '6']
hist.x_title = "结果"
hist.y_title = "结果频率"

# 将一系列值添加到图表中
hist.add('骰子1', frequencies1)
hist.add('骰子2', frequencies2)
hist.render_to_file('die_visual.svg')

运行die_visual.py 会在当前文件目录下生成die_visual.svg文件, 可用浏览器直接查看
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XjAhWepo-1637590583121)(/upload/2020/10/%E6%88%AA%E5%B1%8F2020-10-22%20%E4%B8%8B%E5%8D%882.02.11-1cdda5e926dc492fad469723af93e71a.png)]

源码文件:
die.py
die_visual.py
die_visual.svg


Python3 目录

  1. Python3 教程
  2. Python3 变量和简单数据类型
  3. Python3 列表
  4. Python3 操作列表
  5. Python3 if 语句
  6. Python3 字典
  7. Python3 用户输入和while循环
  8. Python3 函数
  9. Python3 类
  10. Python3 文件和异常
  11. Python3 测试代码
  12. Python3 使用matplotlib绘制图表
  13. Python3 使用Pygal生成矢量图形文件
  14. Python3 使用csv模块处理CSV(逗号分割的值)格式存储的天气数据
  15. Python3 处理JSON格式数据(制作交易收盘价走势图)
  16. Python3 使用API
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值