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:

更多-》https://www.jianshu.com/p/08bf0efc3232

Python开发【模块】:Pygal 绘制直方图的更多相关文章

  1. python开发模块基础:re正则

    一,re模块的用法 #findall #直接返回一个列表 #正常的正则表达式 #但是只会把分组里的显示出来#search #返回一个对象 .group()#match #返回一个对象 .group() ...

  2. python开发模块基础:异常处理&hashlib&logging&configparser

    一,异常处理 # 异常处理代码 try: f = open('file', 'w') except ValueError: print('请输入一个数字') except Exception as e ...

  3. python开发模块基础:os&sys

    一,os模块 os模块是与操作系统交互的一个接口 #!/usr/bin/env python #_*_coding:utf-8_*_ ''' os.walk() 显示目录下所有文件和子目录以元祖的形式 ...

  4. python开发模块基础:序列化模块json,pickle,shelve

    一,为什么要序列化 # 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化'''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文 ...

  5. python开发模块基础:time&random

    一,time模块 和时间有关系的我们就要用到时间模块.在使用模块之前,应该首先导入这个模块 常用方法1.(线程)推迟指定的时间运行.单位为秒. time.sleep(1) #括号内为整数 2.获取当前 ...

  6. python开发模块基础:collections模块&paramiko模块

    一,collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdic ...

  7. python开发模块基础:正则表达式

    一,正则表达式 1.字符组:[0-9][a-z][A-Z] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示字符分为很多类,比如数字.字母.标点等等.假如你现在要求一个位置&q ...

  8. Python开发——目录

    Python基础 Python开发——解释器安装 Python开发——基础 Python开发——变量 Python开发——[选择]语句 Python开发——[循环]语句 Python开发——数据类型[ ...

  9. Python数据可视化---pygal模块

    目录 pygal模块 安装pygal模块 pygal模块介绍 柱状图 单列柱状图 堆叠柱状图 横向柱状图 折线图 简单折线图 纵向折线图 堆叠折线图 饼状图 简单饼状图 多级饼状图 圆环图 半圆图 雷 ...

随机推荐

  1. 关于对afx_msg的解释-----来源百度百科

    1AFX前缀 Afx前缀是微软MFC一个小组的名称简写,并没有别的意义. MFC的很多代码,包括全局函数名.宏.头文件名都使用了"Afx". Afx*.h是一组MFC的核心头文件, ...

  2. MVC上传(单文件)

    后台代码: public ActionResult upload() { //获取文件对象 var file = Request.Files[0]; string suffix/*文件格式*/ = S ...

  3. 【Java集合的详细研究9】Java堆栈(stack)的使用方法

    栈是一种常用的数据结构,栈只允许访问栈顶的元素,栈就像一个杯子,每次都只能取杯子顶上的东西,而对于栈就只能每次访问它的栈顶元素,从而可以达到保护栈顶元素以下的其他元素.”先进后出”或”后进先出”就是栈 ...

  4. 自定义HttpModule,用于未登录用户,不弹出Windows认证窗口,而是跳转回SSO站点

    2012年的一篇随笔记录,可以学习到如何自定义HttpModule,而具体里面针对需求开发的代码,可能未必能让大伙了解到什么,可快速扫描而过. using System; using System.W ...

  5. SRCNN之后的深度学习超分辨率

    SRCNN开山之作 IDN 信息蒸馏网络information distillation network(IDN) Fast and Accurate Single Image Super-Resol ...

  6. hadoop3.1.0 window win7 基础环境搭建

    https://blog.csdn.net/wsh596823919/article/details/80774805 hadoop3.1.0 window win7 基础环境搭建 前言:在windo ...

  7. VMWare虚拟机提示:打不开磁盘…或它所依赖的某个快照磁盘,开启模块DiskEarly的操作失败,未能启动虚拟机

    将电脑上存在的虚拟机复制一份后打开运行,弹出错误提示: 打不开磁盘…或它所依赖的某个快照磁盘,开启模块DiskEarly的操作失败,未能启动虚拟机. 解决方法如下: 打开存放虚拟机系统硬盘的所在文件夹 ...

  8. OpenCV学习:OpenCV源码编译(vc9)

    安装后的OpenCV程序下的build文件夹中,只找到了vc10.vc11和vc12三种编译版本的dll和lib文件,需要VS2010及以上的IDE版本,而没有我们常用的VS2008版本. 于是,需要 ...

  9. Effective C++ Item 15 Provide access to raw resources in resource-managing classes

    In last two item, I talk about resource-managing using RAII, now comes to the practical part. Often, ...

  10. swift - 将表格滚动条移动到底部

    类似聊天那种效果,最新出现消息后,会自动滚动到表的底部,具体代码实现如下: 1,使用scrollToRow方法: let mySec = 1//最后一个分组的索引(0开始,如果没有分组则为0 let ...