先安装包Plotly
die.py
from random import randint
class Die:
#表示一个骰子的类
def __init__(self,num_sides=6):
#默认骰子是6面
self.num_sides = num_sides
def roll(self):
#返回一个1和骰子面之间的随机数
return(randint(1,self.num_sides))
die_visual.py
from plotly.graph_objs import Bar,Layout
from plotly import offline
from die import Die
#创建一个D6
die = Die()
#投掷一定次数的骰子,并储存在列表中
results = []
for roll_num in range(100):
result = die.roll()
results.append(result)
#分析结果
frequencies = []
for value in range(1,die.num_sides+1):
frequency = results.count(value)
#count() 方法用于统计字符串里某个字符或子字符串出现的次数。可选参数为在字符串搜索的开始与结束位置。
frequencies.append(frequency)
#对结果进行可视化
x_values = list(range(1,die.num_sides+1))
#plotly只能接受列表类型,因此需要将range()进行转换
data = [Bar(x=x_values,y=frequencies)]
#Bar()用于绘制条形图的数据集,需要存储X值和Y值的列表
x_axis_config = {'title':'结果'}
y_axis_config = {"title":'结果的频率'}
设置坐标轴标签属性,此处只设置名称
my_layout = Layout(title='投掷一个D6 100此的结果',xaxis=x_axis_config,yaxis=y_axis_config)
#Layout()返回一个制定的图标布局和配置对象,设置其标题,和传入X,Y的标题变量,(字典形式)
offline.plot({'data':data,'layout':my_layout},filename='d6.html')
#offline.plot()需要一个包含数据和布局对象的字典,还接受一个文件名,将文件存储在其中
plotly介绍:
plotly是一个基于JavaScript的绘图库,可以绘制精致的动态交互图形,绘图结果默认保存成html文件,可以通过浏览器查看。
plotly不能直接接受numpy和pandas的数据结构,需要将数据转换成其可识别的数据结构。
链接:https://www.jianshu.com/p/02677702e865
plotly.graph_objects.Bar():
data = [Bar(x=x_values,y=frequencies)]
https://plotly.com/python-api-reference/generated/plotly.graph_objects.Bar.html
plotly.graph_objects.Layout():
my_layout = Layout(title='投掷一个D6 100此的结果',xaxis=x_axis_config,yaxis=y_axis_config)
#Layout()返回一个制定的图标布局和配置对象,设置其标题,和传入X,Y的标题变量,(字典形式)
https://plotly.com/python-api-reference/generated/plotly.graph_objects.Layout.html
plotly.offline.plot():
使用plotly.offline.plot(data,filename='file.html')函数可以在本地新建一个HTML文件,并可以选择是否在浏览器中打开这个文件。
使用py.offline.init_notebook_mode()进行初始化,利用plotly.offline.iplot函数可在Jypyter notebook直接绘图。
https://www.jianshu.com/p/02677702e865
count()函数:
描述
Python count() 方法用于统计字符串里某个字符或子字符串出现的次数。可选参数为在字符串搜索的开始与结束位置。
语法
count()方法语法:
str.count(sub, start= 0,end=len(string))
参数
sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
返回值
该方法返回子字符串在字符串中出现的次数。
randint(a,b):
返回包括起始值a和终点值b在内的整数
API:https://plotly.com/python-api-reference/