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

逆流者 2020年10月22日 54次浏览

简介

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命令

测试pygal是否安装成功

没有报错就安装成功.

使用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文件, 可用浏览器直接查看
die_visual.svg文件

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


Python3 目录

  1. Python3 教程
  2. Python3 变量和简单数据类型
  3. Python3 列表
  4. Python3 操作列表
  5. Python3 if 语句
  6. Python3 if 字典
  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