首先是diee.py文件
#coding:gbk
from random import randint
class Die():
'''创建一个骰子的类'''
def __init__(self,num=6):
'''骰子默认面为6'''
self.num = num
def roll(self):
return randint(1,self.num)
然后是die文件
#coding:gbk
import pygal#需要画图的时候添加的导pygal模块
from diee import Die
#创建一个6面的骰子
die = Die()
#投掷几次骰子,结果存储于列表
results = []
for roll_num in range(1000):
result = die.roll()
results.append(result)
#分析结果
fre=[]
for value in range(1,die.num+1):#遍历可能的点数,因为range差一属性,我们需要+1
fres = results.count(value)#计算每种点数在results里出现的次数并赋值给fres
fre.append(fres)
#print(fre)
#对结果进行可视化
hist = pygal.Bar()
hist.title = 'Rolling one D6 1000 times.'
hist.xlabels = ['1','2','3','4','5','6']
hist.x_title = 'Result'
hist.y_title = 'Frequency of result'
hist.add('D6',fre)
hist.render_to_file('die_visual.svg')
'''首先我们在文件最开始导入了pygal模块,在下面的对结果可视化部分做一下说明:
创建一个pygal.Bar()的实例,将其存储在hist中
给hist的属性title标题设置一下,将骰子D6的可能结果用作X轴的标签
然后我们使用add()将一系列值添加到图表中,还传递了一个列表fre,其中包含了将出现在图表中的值
最后将这个图表渲染成一个svg文件,这种文件的拓展名必须为svg
运行之后我们是看不到图表的,程序会在根目录下生成一个svg的文件,用浏览器打开查看
pygal生成的图表具有交互性,如果你将鼠标指向图表中的任何条形,将会看到与之相关联的数据
由于用python需要选择你喜欢的第三方模块,所以可以自由选择,目前也有很多大神做了一些更方便
和更牛X的模块提供大家选择,大家可以自己去网上搜索一下.
这样导致了每一个模块所提供的指令可能都未必相同,所以图形更需要多练习
在需要制图的一些作业方向和相关的作业人员,他们需要经常使用这些指令,所以很快可以上手
下边的同时投掷两个骰子,我就不多做解释了,我也只是看一看就丢一边了,我们应该把中心偏向自己
目前更需要学习的地方,和自己感兴趣的point.当我们需要制图的时候,只需要去找一个自己喜欢的
模块,然后学习他的用法便可以制图了
为此我特别找了一个画图的模块,开发团队是国人,所以学习文档很友好
界面也美观多了,大家可以看看这家伙的交互界面和CODE
http://pyecharts.org/#/zh-cn/prepare