Python学习笔记(五)--数据可视化(下)

Python学习笔记(五)--数据可视化(下),第1张

Python学习笔记(五)--数据可视化(下)

文章目录

Pygal

Pygal

我们将使用Python可视化包Pygal来生成可缩放的矢量图形文件。对于需要在尺寸不同的屏幕上显示的图表,这很有用,因为它们将自动缩放,以适合观看者的屏幕。
Pygal官网:
https://www.pygal.org/en/stable/
我们将使用Pygal来分析掷骰子问题。

安装Pygal库:

pip install pygal

创建Die 类

我们用一个类来模拟一个骰子:

from random import randint
class Die():
	"""表示一个骰子的类"""
	def __init__(self, num_sides=6):
		"""骰子默认为6面"""
		self.num_sides = num_sides
	def roll(self):
		""""返回一个位于1和骰子面数之间的随机值"""
		return randint(1, self.num_sides)

方法__init__()接受一个可选参数。创建这个类的实例时,如果没有指定任何实参,面数默认为6;如果指定了实参,这个值将用于设置骰子的面数。

骰子是根据面数命名的,6面的骰子名为D6,8面的骰子名为D8,以此类推。

方法roll()使用函数randint()来返回一个1和面数之间的随机数。

绘制直方图:

import pygal
# 分析结果
frequencies = []
for value in range(1, die.num_sides+1):
	frequency = results.count(value)
	frequencies.append(frequency)
# 对结果进行可视化
hist = pygal.Bar()
hist.title = "Results of rolling one D6 1000 times."
hist.x_labels = ['1', '2', '3', '4', '5', '6']
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
hist.add('D6', frequencies)
hist.render_to_file('die_visual.svg')

为创建条形图,我们创建了一个pygal.Bar()实例,并将其存储在hist中。
我们设置hist的属性title(用于标示直方图的字符串),将掷D6骰子的可能结果用作x轴的标签,并给每个轴都添加了标题。
我们使用add()将一系列值添加到图表中(向它传递要给添加的值指定的标签,还有一个列表,其中包含将出现在图表中的值)。最后,我们将这个图表渲染为一个SVG文件,这种文件的扩展名必须为.svg。

完整代码:

import pygal
from random import randint
class Die():
	"""表示一个骰子的类"""
	def __init__(self, num_sides=6):
		"""骰子默认为6面"""
		self.num_sides = num_sides
	def roll(self):
		""""返回一个位于1和骰子面数之间的随机值"""
		return randint(1, self.num_sides)

die = Die()
# 掷几次骰子,并将结果存储在一个列表中
results = []
for roll_num in range(100):
	result = die.roll()
	results.append(result)

#print(results)
for roll_num in range(1000):
	result = die.roll()
	results.append(result)

frequencies = []

for value in range(1, die.num_sides+1):
	frequency = results.count(value)
	frequencies.append(frequency)
# 对结果进行可视化
hist = pygal.Bar()
hist.title = "Results of rolling one D6 1000 times."
hist.x_labels = ['1', '2', '3', '4', '5', '6']
hist.x_title = "Result"
hist.y_title = "Frequency of Result"
hist.add('D6', frequencies)
hist.render_to_file('die_visual.svg')

在运行目录找到运行结果:

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5712025.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存