plotly优点:
1)不需要额外添加字体,就能正确显示中文。
2)绘制后的图形可以与用户交互。
目标:统计三个6面骰子,各投掷一次,三次投掷点数之和的结果分布。
代码如下:
from plotly.graph_objs import Bar,Layout
from plotly import offline
from die import Die
die1 = Die()
die2 = Die()
die3 = Die()
results = [die1.roll()+die2.roll()+die3.roll() for roll_num in range(10000)]#使用列表解析创建列表
max_num = die1.num_sides+die2.num_sides+die3.num_sides
frequencies = [results.count(value) for value in range(3,max_num+1)]
x_values = list(range(3,max_num+1))
data = [Bar(x=x_values,y=frequencies)]
x_axis_config = {'title':'结果','dtick':1}
y_axis_config = {'title':'结果的频率'}
my_layout = Layout(title='3个6面骰子投掷10000次结果统计',
xaxis=x_axis_config,
yaxis=y_axis_config)
offline.plot({'data':data, 'layout':my_layout},
filename = 'd6_d6_d6.html')
绘制后的结果保存为d6_d6_d6.html文件,具体如下: