網(wǎng)站首頁 編程語言 正文
可視化包Pygal生成可縮放矢量圖形文件
可以在尺寸不同的屏幕上自動(dòng)縮放,顯示圖表
#安裝pygal
pip install pygal
'''
想要了解Pygal可生成什么樣的圖表,可訪問http://www.pygal.org/
單擊document,點(diǎn)擊chart types,每個(gè)示例都包含源代碼
'''
from random import randint
#創(chuàng)建一個(gè)骰子的類
class Die():
def __init__(self,num_sides = 6):
self.num_sides = num_sides
def roll(self):
#返回一個(gè)位于1和骰子面數(shù)之間的隨機(jī)值
return randint(1, self.num_sides)
#擲骰子
die = Die()
#創(chuàng)建一個(gè)列表,將結(jié)果存儲(chǔ)在一個(gè)列表中
results = []
#投100次
for roll_num in range(100):
result = die.roll()
results.append(result)
print(results)
[3, 4, 2, 2, 6, 5, 5, 5, 2, 3, 1, 4, 3, 2, 1, 2, 3, 6, 6, 5, 5, 3, 2, 3, 1, 1, 4, 1, 4, 6, 1, 6, 2, 3, 4, 6, 2, 5, 5, 1, 6, 1, 5, 4, 3, 3, 4, 5, 6, 3, 5, 1, 4, 3, 5, 6, 6, 6, 4, 6, 5, 6, 5, 4, 6, 3, 1, 4, 1, 4, 2, 1, 1, 4, 4, 4, 2, 3, 1, 4, 6, 2, 1, 5, 6, 2, 2, 6, 6, 3, 6, 2, 6, 6, 4, 4, 2, 1, 1, 6]
分析結(jié)果,計(jì)算每個(gè)點(diǎn)數(shù)出現(xiàn)的次數(shù)
frequencies = []
for value in range(1, die.num_sides+1):
frequency = results.count(value)
frequencies.append(frequency)
print(frequencies)
[10, 23, 13, 9, 26, 19]
繪制直方圖
import pygal
hist = pygal.Bar()
hist.title = 'results of rolling one d6 100 times'
hist.x_lables = ['1', '2', '3', '4', '5', '6']
hist.x_title = 'result'
hist.y_title = 'frequency of result'
hist.add('d6', frequencies)
#將圖渲染為SVG文件,需要打開瀏覽器,才能查看生成的直方圖
hist.render_to_file('die_visual.svg')
同時(shí)投擲兩個(gè)骰子
from random import randint
#創(chuàng)建一個(gè)骰子的類
class Die():
def __init__(self,num_sides = 6):
self.num_sides = num_sides
def roll(self):
#返回一個(gè)位于1和骰子面數(shù)之間的隨機(jī)值
return randint(1, self.num_sides)
#擲骰子
die1 = Die()
die2 = Die()
#創(chuàng)建一個(gè)列表,將結(jié)果存儲(chǔ)在一個(gè)列表中
results = []
#投100次
for roll_num in range(100):
result = die1.roll() + die2.roll()
results.append(result)
print(results)
#分析結(jié)果,計(jì)算每個(gè)點(diǎn)數(shù)出現(xiàn)的次數(shù)
frequencies = []
max_result = die1.num_sides + die2.num_sides
for value in range(1, max_result+1):
frequency = results.count(value)
frequencies.append(frequency)
print(frequencies)
#繪制直方圖
import pygal
hist = pygal.Bar()
hist.title = 'results of rolling one d6 dice 100 times'
hist.x_lables = ['2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
hist.x_title = 'result'
hist.y_title = 'frequency of result'
hist.add('d6 + d6', frequencies)
#將圖渲染為SVG文件,需要打開瀏覽器,才能查看生成的直方圖
hist.render_to_file('die_visual.svg')
[4, 7, 4, 5, 8, 4, 3, 6, 8, 9, 8, 11, 9, 11, 8, 8, 5, 6, 10, 5, 11, 7, 4, 3, 12, 12, 7, 2, 4, 9, 9, 5, 7, 10, 4, 7, 4, 6, 5, 6, 7, 2, 7, 9, 7, 6, 11, 5, 9, 6, 11, 4, 8, 10, 7, 9, 5, 4, 3, 7, 4, 10, 5, 7, 2, 6, 4, 2, 2, 5, 5, 9, 6, 3, 6, 10, 12, 7, 4, 11, 8, 6, 10, 5, 7, 5, 5, 7, 9, 4, 11, 6, 7, 8, 6, 11, 6, 4, 3, 12]
[0, 5, 5, 14, 13, 13, 15, 8, 9, 6, 8, 4]
同時(shí)投擲兩個(gè)面數(shù)不同骰子
from random import randint
#創(chuàng)建一個(gè)骰子的類
class Die():
def __init__(self,num_sides = 6):
self.num_sides = num_sides
def roll(self):
#返回一個(gè)位于1和骰子面數(shù)之間的隨機(jī)值
return randint(1, self.num_sides)
#擲骰子
die1 = Die()
die2 = Die(10)
#創(chuàng)建一個(gè)列表,將結(jié)果存儲(chǔ)在一個(gè)列表中
results = []
#投100次
for roll_num in range(100):
result = die1.roll() + die2.roll()
results.append(result)
print(results)
#分析結(jié)果,計(jì)算每個(gè)點(diǎn)數(shù)出現(xiàn)的次數(shù)
frequencies = []
max_result = die1.num_sides + die2.num_sides
for value in range(1, max_result+1):
frequency = results.count(value)
frequencies.append(frequency)
print(frequencies)
#繪制直方圖
import pygal
hist = pygal.Bar()
hist.title = 'results of rolling one d10 dice 100 times'
hist.x_lables = ['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)
#將圖渲染為SVG文件,需要打開瀏覽器,才能查看生成的直方圖
hist.render_to_file('die_visual.svg')
[5, 3, 6, 13, 8, 9, 10, 11, 11, 4, 5, 14, 11, 10, 11, 8, 14, 12, 16, 8, 9, 11, 7, 11, 9, 2, 8, 9, 9, 10, 7, 8, 12, 11, 8, 12, 9, 9, 10, 11, 8, 14, 10, 12, 10, 7, 12, 5, 4, 8, 6, 7, 7, 11, 9, 16, 6, 13, 6, 10, 6, 7, 16, 9, 14, 5, 7, 12, 8, 9, 11, 11, 6, 11, 5, 8, 11, 16, 4, 10, 5, 10, 13, 4, 9, 9, 11, 9, 11, 13, 7, 13, 13, 5, 5, 4, 5, 3, 12, 14]
[0, 1, 2, 5, 9, 6, 8, 10, 13, 9, 15, 7, 6, 5, 0, 4]
原文鏈接:https://www.jianshu.com/p/54f6c7aa9241
相關(guān)推薦
- 2022-03-16 C++中的Lambda函數(shù)詳解_C 語言
- 2022-03-14 文件上傳錯(cuò)誤the request doesn't contain a multipart/form
- 2022-06-06 C#實(shí)現(xiàn)Excel轉(zhuǎn)PDF時(shí)設(shè)置內(nèi)容適應(yīng)頁面寬度_C#教程
- 2022-07-22 jQuery實(shí)現(xiàn)點(diǎn)擊顯示密碼框密碼
- 2024-07-18 Spring Security之基于HttpRequest配置權(quán)限
- 2022-05-05 Python學(xué)習(xí)之字典的常用方法總結(jié)_python
- 2022-06-02 redis?sentinel監(jiān)控高可用集群實(shí)現(xiàn)的配置步驟_Redis
- 2022-12-08 pycharm?無法加載文件activate.ps1的原因分析及解決方法_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支