python实现数据图表

发布时间 - 2026-01-11 02:33:42    点击率:

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


plotly

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

安装

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

$ sudo pip install plotly

绘图

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

绘制直线图

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

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 按时间绘制成直线图,实现如下:

#!/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

柱形图

#!/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

饼状图

#!/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()



# python  # 数据图表  # plotly  # python绘制图表  # Python matplotlib画图实例之绘制拥有彩条的图表  # Python使用plotly绘制数据图表的方法  # 使用Python绘制图表大全总结  # 使用python绘制常用的图表  # 使用Python导出Excel图表以及导出为图片的方法  # python xlsxwriter库生成图表的应用示例  # 离线  # 不是很  # 很简单  # 可以直接  # 所示  # 前段时间  # 平时  # 周末  # 每秒钟  # 压力测试  # 觉得很  # 折线图  # print  # gt  # grep  # Average  # DEV  # sar  # awk  # txt 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何创建自定义Facades?(详细步骤)  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  如何快速打造个性化非模板自助建站?  Android中AutoCompleteTextView自动提示  android nfc常用标签读取总结  新三国志曹操传主线渭水交兵攻略  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  jQuery中的100个技巧汇总  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  php 三元运算符实例详细介绍  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  中山网站制作网页,中山新生登记系统登记流程?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Laravel如何实现API速率限制?(Rate Limiting教程)  专业商城网站制作公司有哪些,pi商城官网是哪个?  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  如何在自有机房高效搭建专业网站?  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  教学论文网站制作软件有哪些,写论文用什么软件 ?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  如何在建站之星绑定自定义域名?  北京的网站制作公司有哪些,哪个视频网站最好?  C++时间戳转换成日期时间的步骤和示例代码  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  Thinkphp 中 distinct 的用法解析  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  北京网站制作公司哪家好一点,北京租房网站有哪些?  网站建设要注意的标准 促进网站用户好感度!  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  Laravel如何使用Gate和Policy进行授权?(权限控制)  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  如何快速启动建站代理加盟业务?  Mybatis 中的insertOrUpdate操作  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  如何在阿里云ECS服务器部署织梦CMS网站?  如何在云指建站中生成FTP站点?  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  北京专业网站制作设计师招聘,北京白云观官方网站?  Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】  Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】  Laravel怎么连接多个数据库_Laravel多数据库连接配置  百度浏览器如何管理插件 百度浏览器插件管理方法  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Laravel怎么导出Excel文件_Laravel Excel插件使用教程