用Pygal绘制直方图代码示例
作者:Assassinの 发布时间:2023-12-15 22:41:01
标签:python,pygal,实例
Pygal可用来生成可缩放的矢量图形文件,对于需要在尺寸不同的屏幕上显示的图表,这很有用,可以自动缩放,自适应观看者的屏幕
1、Pygal模块安装
pygal的安装这里暂不介绍,大家可参阅《pip和pygal的安装实例教程》
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:
来源:https://www.cnblogs.com/lianzhilei/p/6866571.html


猜你喜欢
- 创建一个NNimport tensorflow as tfimport numpy as np#fake datax = np.linspa
- 一、为什么要安装虚拟环境 情景一、项目A需要某个库的1.0版本,项目B需要这个库的2.0版本。如果没有安装虚拟环境
- 本文介绍了几种常用的python下载文件的方法,具体使用到了htttplib2,urllib等包,希望对大家有帮忙。1.简单文件下载使用ht
- 1. 训练运行时候指定GPU运行时候加一行代码:CUDA_VISIBLE_DEVICES=1 python train.py2. 运行过程中
- 事情是这样的,我写了一个tornado的服务,过程当中我用logging记录一些内容,由于一开始并没有仔细观察tornado自已的日志管理,
- re正则表达式模块还包括一些有用的操作正则表达式的函数。下面主要介绍compile函数。 定义: compile(pattern[,flag
- 很多web开发者或许都遇到过这样的问题,程序莫名奇怪出现“不能执行已释放Script的代码”,错误行1,列1.对于这种消息描述不着边,行列描
- Python转json时出现中文乱码设置报文头# -*- coding:gbk -*- 连接数据库设置编码mysql = MyS
- 最近 PEP 570被接受了,其实要加的这个Positional-Only Parameters原来在内置的C函数上有很多都用到了:In :
- matplotlib窗口图标默认是matplotlib的标志,如果想修改怎么改呢?由于我选择的matplotlib后端是PyQT5,直接查看
- 功能:间隔5毫秒,快速点击屏幕某区域,循环45000000次from ctypes import *import timetime.slee
- xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。从结构上,很像HTML超文本标记语
- 最近用了pycharm,感觉还不错,就是pandas中Series、DataFrame的plot()方法不显示图片就给我结束了,但是我在ip
- 一般在本机上完成基于Flask框架的代码编写后,如果有接口或者数据操作方面需求需要把代码部署到指定服务器上。一般情况下,使用Flask框架开
- Hi,好久不见,我还是那颗翻滚的老鼠屎。处理数据时想求两个表格求不相交的部分,或许是对知识的匮乏限制了我的想象力,并未找到直接求的方法,在这
- 今天碰到一个很有意思的问题,需要将普通的 Unicode字符串转换为 Unicode编码的字符串,如下:将 \\u9500\\u552e 转
- 这里将更新最新的最全面的read_csv()函数功能以及参数介绍,参考资料来源于官网。pandas库简介官方网站里详细说明了pandas库的
- 网络技术,无论是php还是java ,无论是pc时代,还是移动时代,无论是黑客技术,还是程序新人,it技术,无疑是当前最火的行业,无论是个人
- 本文实例讲述了php打包压缩文件之ZipArchive方法用法。分享给大家供大家参考,具体如下:前面说到了php打包压缩文件之PclZip方
- 这篇文章主要介绍了python垃圾回收机制(GC)原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要