视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
分享Python如何利用plotly绘制数据图表的案例(图文)
2020-11-27 14:13:49 责编:小采
文档
 本篇文章主要介绍了Python使用plotly绘制数据图表的方法,实例分析了plotly绘制的技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

导语:使用 python-plotly 模块来进行压测数据的绘制,并且生成静态 html 页面结果展示。

不少小伙伴在开发过程中都有对模块进行压测的经历,压测结束后大家往往喜欢使用Excel处理压测数据并绘制数据可视化视图,但这样不能很方便的使用web页面进行数据展示。本文将介绍使用python-plotly模块来进行压测数据的绘制,并且生成静态html页面方便结果展示。

Plotly简介

Plotly是一款使用JavaScript开发的制图工具,提供了与主流数据分析语言交互的API(如:Python, R, MATLAB)。大家可以到官网 https://plot.ly/ 了解更多详细的信息。Plotly能够绘制具有用户交互功能的精美图表。

Python-Plotly 安装

本文档主要是介绍使用plotly的Python API来进行几种简单图表的绘制,更多Plotly的用法请参考 https://plot.ly/python/

Python-Plotly可以使用pip安装,并且最好在Python2.7版本及以上安装使用,如果使用Python2.6版本,请自行安装Python2.7和对应的pip。

Plotly绘图实例

line-plots

绘图效果:

生成的html页面在右上角提供了丰富的交互工具。

代码:

def line_plots(name):
 '''
 绘制普通线图
 '''
 #数据,x为横坐标,y,z为纵坐标的两项指标,三个array长度相同
 dataset = {'x':[0,1,2,3,4,5,6,7,8,9],
 'y':[5,4,1,3,11,2,6,7,19,20],
 'z':[12,9,0,0,3,25,8,17,22,5]}
 data_g = []
 #分别插入 y, z
 tr_x = Scatter(
 x = dataset['x'],
 y = dataset['y'],
 name = 'y' 
 )
 data_g.append(tr_x)
 tr_z = Scatter(
 x = dataset['x'],
 y = dataset['z'],
 name = 'z' 
 )
 data_g.append(tr_z)
 #设置layout,指定图表title,x轴和y轴名称
 layout = Layout(title="line plots", xaxis={'title':'x'}, yaxis={'title':'value'})
 #将layout设置到图表
 fig = Figure(data=data_g, layout=layout)
 #绘图,
输出路径为name参数指定 pltoff.plot(fig, filename=name)

scatter-plots

绘图效果:

代码:

def scatter_plots(name):
 '''
 绘制散点图
 '''
 dataset = {'x':[0,1,2,3,4,5,6,7,8,9],
 'y':[5,4,1,3,11,2,6,7,19,20],
 'text':['5_txt','4_txt','1_txt','3_txt','11_txt','2_txt','6_txt','7_txt','19_txt','20_txt']}

 data_g = []

 tr_x = Scatter(
 x = dataset['x'],
 y = dataset['y'],
 text = dataset['text'],
 textposition='top center',
 mode='markers+text',
 name = 'y' 
 )
 data_g.append(tr_x)

 layout = Layout(title="scatter plots", xaxis={'title':'x'}, yaxis={'title':'value'})
 fig = Figure(data=data_g, layout=layout)
 pltoff.plot(fig, filename=name)

bar-charts

绘图效果:

代码:

def bar_charts(name):
 '''
 绘制柱状图
 '''
 dataset = {'x':['Windows', 'Linux', 'Unix', 'MacOS'],
 'y1':[45, 26, 37, 13],
 'y2':[19, 27, 33, 21]}
 data_g = []
 tr_y1 = Bar(
 x = dataset['x'],
 y = dataset['y1'],
 name = 'v1'
 )
 data_g.append(tr_y1)

 tr_y2 = Bar(
 x = dataset['x'],
 y = dataset['y2'],
 name = 'v2'
 )
 data_g.append(tr_y2)
 layout = Layout(title="bar charts", xaxis={'title':'x'}, yaxis={'title':'value'})
 fig = Figure(data=data_g, layout=layout)
 pltoff.plot(fig, filename=name)

pie-charts

绘图效果:

代码:

def pie_charts(name):
 '''
 绘制饼图
 '''
 dataset = {'labels':['Windows', 'Linux', 'Unix', 'MacOS', 'Android', 'iOS'],
 'values':[280, 25, 10, 100, 250, 270]} 
 data_g = []
 tr_p = Pie(
 labels = dataset['labels'],
 values = dataset['values']
 )
 data_g.append(tr_p)
 layout = Layout(title="pie charts")
 fig = Figure(data=data_g, layout=layout)
 pltoff.plot(fig, filename=name)

filled-area-plots

本例是绘制具有填充效果的堆叠线图,适合分析具有堆叠百分比属性的数据

绘图效果:

代码:

def filled_area_plots(name):
 '''
 绘制堆叠填充的线图
 '''
 dataset = {'x':[0,1,2,3,4,5,6,7,8,9],
 'y1':[5,4,1,3,11,2,6,7,19,20],
 'y2':[12,9,0,0,3,25,8,17,22,5],
 'y3':[13,22,46,1,15,4,18,11,17,20]}

 #计算y1,y2,y3的堆叠占比
 dataset['y1_stack'] = dataset['y1']
 dataset['y2_stack'] = [y1+y2 for y1, y2 in zip(dataset['y1'], dataset['y2'])]
 dataset['y3_stack'] = [y1+y2+y3 for y1, y2, y3 in zip(dataset['y1'], dataset['y2'], dataset['y3'])]

 dataset['y1_text'] = ['%s(%s%%)'%(y1, y1*100/y3_s) for y1, y3_s in zip(dataset['y1'], dataset['y3_stack'])]
 dataset['y2_text'] = ['%s(%s%%)'%(y2, y2*100/y3_s) for y2, y3_s in zip(dataset['y2'], dataset['y3_stack'])]
 dataset['y3_text'] = ['%s(%s%%)'%(y3, y3*100/y3_s) for y3, y3_s in zip(dataset['y3'], dataset['y3_stack'])]

 data_g = []
 tr_1 = Scatter(
 x = dataset['x'],
 y = dataset['y1_stack'],
 text = dataset['y1_text'],
 hoverinfo = 'x+text',
 mode = 'lines',
 name = 'y1', 
 fill = 'tozeroy' #填充方式: 到x轴
 )
 data_g.append(tr_1)

 tr_2 = Scatter(
 x = dataset['x'],
 y = dataset['y2_stack'],
 text = dataset['y2_text'],
 hoverinfo = 'x+text',
 mode = 'lines',
 name = 'y2', 
 fill = 'tonexty' #填充方式:到下方的另一条线
 )
 data_g.append(tr_2)

 tr_3 = Scatter(
 x = dataset['x'],
 y = dataset['y3_stack'],
 text = dataset['y3_text'],
 hoverinfo = 'x+text',
 mode = 'lines',
 name = 'y3',
 fill = 'tonexty'
 )
 data_g.append(tr_3)

 layout = Layout(title="field area plots", xaxis={'title':'x'}, yaxis={'title':'value'})
 fig = Figure(data=data_g, layout=layout)
 pltoff.plot(fig, filename=name)

小结

本文介绍了利用python-plotly绘制数据图的方法,实例中 线图(line plots)、散点图(scatter plots)、柱状图(bar charts)、饼图(pie charts)以及填充堆叠线图(filled area plots)这五种典型的图表基本上涵盖了大部分类型的测试数据,各位小伙伴可以加以变形绘制出更多的漂亮图标。

下载本文
显示全文
专题