【模块】:Pygal 绘制直方图总结

虾米哥 阅读:407 2021-05-02 13:43:20 评论:0

Pygal

  Pygal可用来生成可缩放的矢量图形文件,对于需要在尺寸不同的屏幕上显示的图表,这很有用,可以自动缩放,自适应观看者的屏幕

1、Pygal模块安装

Windows系统

# Pygal模块安装 
 
$ pip3 install pygal 

Linux和OS X系统

# Pygal模块安装 
 
$ pip install --user pygal==1.7 

2、Pygal画廊-直方图

  模拟掷骰子,分析最后的结果,生成图形

创建die.py筛子类文件:

from random import randint 
 
class Die(): 
    '''扔骰子的类''' 
 
    def __init__(self,num_sides=6): 
        self.num_sides = num_sides # 骰子的面数 
 
    def roll(self): 
        return randint(1,self.num_sides) 

创建die_visual.py文件,生成直方图:

from die import Die 
import pygal 
 
die = Die() 
 
# 数据集合 
results = [] 
count = 1 
for roll_num in iter(lambda *args:die.roll(),None): 
    results.append(roll_num) 
    if count >= 1000: 
        break 
    count +=1 
 
# 分析结果 
frequencies= [] 
for value in range(1,die.num_sides+1): 
    frequencie = results.count(value) 
    frequencies.append(frequencie) 
 
# 对结果进行可视化 
hist = pygal.Bar()      # 生成实例 
hist.title = 'Results of rolling one D6 1000 times'  # 标题 
hist.x_labels = ['1','2','3','4','5','6']           # X轴数值坐标 
hist.x_title = 'Result'                                 # X轴标题 
hist.y_title = 'Frequency of Result'                # Y轴标题 
 
hist.add('D6',frequencies)                             # 传入Y轴数据 
hist.render_to_file('die_visual.svg')               # 文件生成路径,必须为svg格式文件 

通过浏览器打开die_visual.svg文件:

3、同时掷两枚骰子

修改die_visual.py文件:

from die import Die 
import pygal 
 
die1 = Die() 
die2 = Die() 
 
# 数据集合 
results = [] 
for i in range(5000): 
    result = die1.roll() + die2.roll() 
    results.append(result) 
 
# 分析结果 
frequencies= [] 
for value in range(2,die1.num_sides+die2.num_sides+1): 
    frequencie = results.count(value) 
    frequencies.append(frequencie) 
 
# 对结果进行可视化 
hist = pygal.Bar()      # 生成实例 
hist.title = 'Results of rolling one D6 5000 times'  # 标题 
hist.x_labels = ['2','3','4','5','6','7','8','9','10',11,12]           # X轴数值坐标 
hist.x_title = 'Result'                                 # X轴标题 
hist.y_title = 'Frequency of Result'                # Y轴标题 
 
hist.add('D6+D6',frequencies)                             # 传入Y轴数据 
hist.render_to_file('die_visual.svg')               # 文件生成路径,必须为svg格式文件 

浏览器浏览图形die_visual.svg

更多-》IT虾米网


标签:javaPython
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

我的关注

搜索
排行榜
关注我们