菜鸟Plotly(模拟投掷筛子)—04

先安装包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/

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容