python数据分析之pygal画廊

可视化包pygal可以生成可缩放的矢量图形文件,对于需要在尺寸不同的屏幕上显示的图表很有用,它将自动缩放,以适合观看者的屏幕。

使用pygal来模拟掷一个骰子的结果

import numpy as np

class Die():

    def __init__(self,num_sizes=6):
        self.num_sizes=num_sizes
        
    def roll(self):
        #返回一个位于1和筛子面数之间的随机值
        return np.random.randint(1,self.num_sizes+1)

die=Die()
results=[]
for roll_num in range(100):
    result=die.roll()
    results.append(result) 

frequencies=[]
for value in range(1,die.num_sizes+1):
    frequency=results.count(value)
    frequencies.append(frequency)

print(frequencies)

绘制直方图

hist=pygal.Bar()
hist.title='results of rolling one D6 1000 times.'
hist.x_labels=[str(x) for x in range(1,die.num_sizes+1)]
hist.x_title='Result'
hist.y_title='frequency of result'

#用add()将值添加到图表中。参数为要给添加值指定的标签,还有一个值的列表。
#将图表渲染为SVG文件,扩展名为.svg
hist.add('D6',frequencies)
hist.render_to_file(r'C:\Users\LPH\Desktop\Die.svg')

完整代码:

import numpy as np
import pygal

class Die():

    def __init__(self,num_sizes=6):
        self.num_sizes=num_sizes
        
    def roll(self):
        #返回一个位于1和筛子面数之间的随机值
        return np.random.randint(1,self.num_sizes+1)

die=Die()
results=[]
for roll_num in range(1000):
    result=die.roll()
    results.append(result) 

frequencies=[]
for value in range(1,die.num_sizes+1):
    frequency=results.count(value)
    frequencies.append(frequency)

print(frequencies)

hist=pygal.Bar()
hist.title='results of rolling one D6 1000 times.'
hist.x_labels=[str(x) for x in range(1,die.num_sizes+1)]
hist.x_title='Result'
hist.y_title='frequency of result'

#用add()将值添加到图表中。参数为要给添加值指定的标签,还有一个值的列表。
#将图表渲染为SVG文件,扩展名为.svg
hist.add('D6',frequencies)
hist.render_to_file(r'C:\Users\LPH\Desktop\Die.svg')

使用pygal来模拟掷两个筛子(面数不同)的结果

import numpy as np
import pygal

class Die():

    def __init__(self,num_sizes=6):
        self.num_sizes=num_sizes
        
    def roll(self):
        #返回一个位于1和筛子面数之间的随机值
        return np.random.randint(1,self.num_sizes+1)

die1=Die()
die2=Die(10)
results=[]
for roll_num in range(1000):
    result=die1.roll()+die2.roll()
    results.append(result) 

frequencies=[]
for value in range(2,die1.num_sizes+die2.num_sizes+1):
    frequency=results.count(value)
    frequencies.append(frequency)

print(frequencies)

hist=pygal.Bar()
hist.title='results of rolling one D6 1000 times.'
hist.x_labels=[str(x) for x in range(2,die1.num_sizes+die2.num_sizes+1)]
hist.x_title='Result'
hist.y_title='frequency of result'

#用add()将值添加到图表中。参数为要给添加值指定的标签,还有一个值的列表。
#将图表渲染为SVG文件,扩展名为.svg
hist.add('D6+D10',frequencies)
hist.render_to_file(r'C:\Users\LPH\Desktop\Die.svg')

结果如图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值