python对excel数据可视化 plotly_Python使用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)这五种典型的图表基本上涵盖了大部分类型的测试数据,各位小伙伴可以加以变形绘制出更多的漂亮图标。

文中所示代码:test_plotly_jb51.rar

参考资料

1. https://plot.ly/python/basic-charts/

2. https://images.plot.ly/plotly-documentation/images/python_cheat_sheet.pdf

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python使用plotly绘制数据图表的方法

本文地址: http://www.cppcns.com/jiaoben/python/196962.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值