SVG库Pygal

可视化包Pygal来生成可缩放的矢量图形文件。对于须要在尺寸 不一样的屏幕上显示的图表,这颇有用,由于它们将自动缩放,以适合观看者的屏幕。若是你打算 以在线方式使用图表,请考虑使用Pygal来生成它们,这样它们在任何设备上显示时都会很美观。
安装python

pip install --user pygal

使用Pygal模拟骰子app

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from random import randint

import pygal


class Dice():
    '''表示一个骰子的类'''

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

    def roll(self):
        '''返回一个位于1和骰子面数之间的随机值'''
        return randint(1, self.num_sides)


dice = Dice()
dice2 = Dice(10)
# 掷几回骰子,并将结果存储在一个列表中
results = []
for roll_num in range(5000):
    result = dice.roll() + dice2.roll()
    results.append(result)

# 分析结果
frequencies = []
max_result = dice.num_sides + dice2.num_sides
for value in range(2, max_result + 1):
    frequency = results.count(value)
    frequencies.append(frequency)

# 对结果进行可视化
hist = pygal.Bar()
hist.title = "Results of rolling a D6 and a D10 50,000 times."
hist.x_labels = ['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)
hist.render_to_file('dice_visual.svg')
相关文章
相关标签/搜索