各位用户为了找寻关于python实现数据图表的资料费劲了很多周折。这里教程网为您整理了关于python实现数据图表的相关资料,仅供查阅,以下为您介绍关于python实现数据图表的详细内容

平时压力测试,生成一些数据后分析,直接看 log 不是很直观,前段时间看到公司同事分享了一个绘制图表python 模块 : plotly, 觉得很实用,利用周末时间熟悉下。

plotly

plotly 主页 : https://plot.ly/python/

安装

在 ubuntu 环境下,安装 plotly 很简单 python 版本2.7+

? 1 $ sudo pip install plotly

 

绘图

在 plotly 网站注册后,可以直接将生成的图片保存到网站上,便于共享保存。 这里使用离线的接口,生成的 html 保存在本地文件

绘制直线图

先随便搞一组数据用来绘制图表

 

? 1 2 3 4 5 6 7 8 9 lcd@ubuntu:~/$ cat gen_log.sh #!/bin/bash count=$1 while [ $count -gt 0 ] do   sar -n DEV 1 1 | grep "Average:" | grep "eth0" | awk '{print $4,$5,$6}'   count=$(($count-1)) done lcd@ubuntu:~/$ sh gen_log.sh 1000 > log.txt

通过上述脚本,获取每秒钟网卡的3个数据,记录文本,利用 ploty 按时间绘制成直线图,实现如下:

 

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 #!/usr/bin/env python import plotly.offline as pltoff import plotly.graph_objs as go   def line_plots(name="line_plots.html"):   dataset = {     'time': [],     'rx': [],     'tx': [],     'util': []   }   with open("./log.txt") as f:     i = 0     for line in f:       items = line.split()       dataset['time'].append(i)       dataset['rx'].append(items[0])       dataset['tx'].append(items[1])       dataset['util'].append(items[2])       i += 1          data_g = []   # 构建 time - rx 数据关系,折线图   tr_rx = go.Scatter(     x = dataset['time'],     y = dataset['rx'],     name = 'rx')   data_g.append(tr_rx)     tr_tx = go.Scatter(     x = dataset['time'],     y = dataset['tx'],     name = 'tx')   data_g.append(tr_tx)     tr_util = go.Scatter(     x = dataset['time'],     y = dataset['util'],     name = 'util')   data_g.append(tr_util)     # 设置图表布局   layout = go.Layout(title="Line plots",     xaxis={'title':'time'}, yaxis={'title':'value'})   fig = go.Figure(data=data_g, layout=layout)   # 生成离线html   pltoff.plot(fig, filename=name)   if __name__=='__main__':   line_plots()

生成图表如下所示 :

line_plot

柱形图

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #!/usr/bin/env python import plotly.offline as pltoff import plotly.graph_objs as go   def bar_charts(name="bar_charts.html"):   dataset = {'x':['man', 'woman'],         'y1':[35, 26],         'y2':[33, 30]}   data_g = []   tr_y1 = go.Bar(     x = dataset['x'],     y = dataset['y1'],     name = '2016'     )   data_g.append(tr_y1)     tr_y2 = go.Bar(   x = dataset['x'],   y = dataset['y2'],   name = '2017'     )   data_g.append(tr_y2)   layout = go.Layout(title="bar charts",     xaxis={'title':'x'}, yaxis={'title':'value'})   fig = go.Figure(data=data_g, layout=layout)   pltoff.plot(fig, filename=name)   if __name__=='__main__':   bar_charts()

bar char

饼状图

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/env python import plotly.offline as pltoff import plotly.graph_objs as go   def pie_charts(name='pie_chart.html'):   dataset = {     'labels':['Windows', 'Linux', 'MacOS'],     'values':[280, 10, 30]}   data_g = []   tr_p = go.Pie(   labels = dataset['labels'],   values = dataset['values']     )   data_g.append(tr_p)   layout = go.Layout(title="pie charts")   fig = go.Figure(data=data_g, layout=layout)   pltoff.plot(fig, filename=name)   if __name__=='__main__':   pie_charts()

原文链接:http://www.jianshu.com/p/c2997494085b