IT技术博客大学习 共学习 共进步

好软件推荐 gnuplot 来做可视化数据

扶凯 2010-11-28 19:05:13 浏览 3,323 次

先给大家看个图。。。做得不好。。。这个是我学习 RHCA 中的调优课的一个工具,相当相当好。介绍给大家。ps 我发现所有调优都能数字化,bc 和 gnuplot 是最好的帮助了。

我们常用在 Linux 中有大量的软件会输出各种数据,有时肉眼看起来非常累,如果能做成可视化就非常方便,象硬盘的读写,网卡流量,日志之粗也可以用这个软件来转换成流量图。只要是可以形成x 和 y 的关系的都是可以做成这样的。

我们可以使用 gnuplot 的命令来生成一些数据,如果想常久使用,可以写成 gplot 的"配置",默认直接在终端中打下面的命令就好了,要是 ubuntu 之类的 Linux 做桌面就更加方便了,可以直接在图形上输出内容来。

1
2
3
4
5
6
7
8
9
10
11
set term png crop
set output 'flow1.png'
set multiplot
set xdata time
set timefmt "%H:%M:%S"
set xlabel "Time"
set ylabel "Bits per Second"
set xrange ["16:08:08":"16:14:46"]
set grid 
set style data lines
plot "hostflow.data" using 1:($4/1024) title "in" , '' using 1:($6/1024) title "out"

以后使用 ”Perl 网络编程“ 的风格来写代码注脚

第1行,主要是设置使用 png 的方法来输出,如果不加的 png ,不写这行直接默认从 x window 输出。
第2-5行,一个是设置输出的文件名,一个是设置多个输入,另外 xdata 是指数据是使用时间格式.
第6-7行,是设置x 和 y 的名字。
第8-10行,是设置一些输出的风格

先要收集一些数据,下面我有个 sar 的数据的例子。原始数据是使用 sar 抓出来的

LANG=C sar -n DEV 2 200 |grep eth0 > hostflow.data

生成大量的如下的数据

16:14:12         eth0      6.00   2635.00    360.00 3920464.50      0.00      0.00      0.00
16:14:14         eth0      8.00   1615.50    480.00 2373773.00      0.00      0.00      0.00
16:14:16         eth0     13.00   1720.00    780.00 2531208.00      0.00      0.00      0.00
16:14:18         eth0     11.50   1835.50    690.00 2702716.50      0.00      0.00      0.00
16:14:20         eth0     10.45   1942.79    626.87 2862716.92      0.00      0.00      0.00
16:14:22         eth0      7.50   5027.00    591.00 7542619.50      0.00      0.00      0.00
16:14:24         eth0      8.50   5273.50    510.00 7899681.00      0.00      0.00      0.00
16:14:26         eth0     12.00   1796.00    720.00 2643741.00      0.00      0.00      0.00
16:14:28         eth0     10.50   1668.50    630.00 2446601.00      0.00      0.00      0.00
16:14:30         eth0      9.50   1833.50    570.00 2700828.00      0.00      0.00      0.00
16:14:32         eth0      8.50   1555.00    510.00 2283765.50      0.00      0.00      0.00
16:14:34         eth0     10.50   2030.50    630.00 2977217.00      0.00      0.00      0.00
16:14:36         eth0      7.50   1003.50    450.00 1476341.00      0.00      0.00      0.00
16:14:38         eth0      9.00   1025.00    540.00 1500662.00      0.00      0.00      0.00
16:14:40         eth0     13.50    873.50    810.00 1263540.00      0.00      0.00      0.00
16:14:42         eth0     15.00   3615.50   1041.00 4902174.50      0.00      0.00      0.00
16:14:44         eth0     10.50   1419.50    630.00 2063027.00      0.00      0.00      0.00
16:14:46         eth0      8.00   1885.00    480.00 2615272.50      0.00      0.00      0.00

 如果我们想用来来实现一个象 mrtg 图一样的流量显示功能,我们先用 sar 来生成实时的流量数据,然后使用 gnuplot 来生成图,使用容易的程度比 mrtg 还好。

gnuplot -persis loadavg.gplot

详细使用可以看下面IBM这个文章,比我这个详细多了,我只能告诉大家有这么一个软件

http://www.ibm.com/developerworks/cn/linux/l-gnuplot/index.html

建议继续学习

  1. 命令行画图工具gnuplot用法入门 (阅读 11,564)
  2. 给数据穿上美丽的外衣 (阅读 3,622)
  3. 浅谈信息可视化――航空篇 (阅读 3,484)
  4. iOS可视化编程 Tips 之“无需代码设置圆角” (阅读 3,402)
  5. 惊现!表面下的隐藏信息――浅谈信息可视化 (阅读 3,264)
  6. 浅析来源分析的数据可视化 (阅读 3,163)
  7. 数据可视化初体验(R语言) (阅读 2,920)
  8. 信息可视化研究范畴及案例 (阅读 2,843)
  9. 白话Block Formatting Context (阅读 2,742)
  10. iOS可视化编程 Tips 之“消灭重复又无聊的代码之 UITableView 篇” (阅读 2,662)