首先是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.当我们需要制图的时候,只需要去找一个自己喜欢的 模块,然后学习他的用法便可以制图了
为此我特别找了一个画图的模块,开发团队是国人,所以学习文档很友好界面也美观多了,大家可以看看这家伙的交互界面和CODEhttp://pyecharts.org/#/zh-cn/prepare