1.Pygal画廊画 要了解使用Pygal可创建什么样的图表,请查看图表类型画廊:访问http://www.pygal.org/ ,单击Documentation,再单击Chart types。每个示例都包含源代码,让你知道这些图表是如何 生成的。
2.class Die(): “”“表示一个骰子的类”""
❶ def init(self, num_sides=6): “”“骰子默认为6面”""
self.num_sides = num_sides
def roll(self): “”"“返回一个位于1和骰子面数之间的随机值”"" roll 掷骰子
❷ return randint(1, self.num_sides)
方法roll() 使用函数randint() 来返回一个1和面数之间的随机数(见❷)。这个函数可能返回起始值1、终止值num_sides 或这两个值之间的任何整数。
3.for roll_num in range(100) 循环100此,roll_num=0,1,…,99
4.#die_visual.py
from die import Die
die=Die()
results=[]
for roll_num in range(100):
result=die.roll()
results.append(result)
frequencies=[]
for value in range(1,die.num_sides+1):
frequency=results.count(value)
frequencies.append(frequency)
print(frequencies)
5.# 分析结果 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。 要查看生成的直方图,最简单的方式是使用Web浏览器。为此,在任何Web浏览器中新建一个标签页,再在其中打开文件die_visual.svg(它位于die_visual.py所在的文件夹中)。你 将看到一个类似于图15-11所示的图表(为方便印刷,我稍微修改了这个图表;默认情况下,Pygal生成的图表的背景比你在图15-11中看到的要暗)。
bar 棒