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')
相關文章
相關標籤/搜索