For investors
股價:
5.36 美元 %For investors
股價:
5.36 美元 %認真做教育 專心促就業(yè)
Gnuplot簡介
Gnuplot是一款非常強大的跨平臺作圖工具。小到畫各種數(shù)學函數(shù)圖,大到寫作科技論文、實現(xiàn)各種復雜的數(shù)據(jù)公式,它都能輕松應對。秉承UNIX的優(yōu)良傳統(tǒng),gnuplot使用純文本作為輸入,因其包含的大量命令和變量,使得其有著無與倫比的表現(xiàn)力。
對gnuplot 作圖有興趣的同學,可以參考其官網(wǎng)的手冊,其中有大量的范例。
時序圖的繪制—使用Gnuplot #/Linux/2014-08/104930.htm
Tpcc-MySQL測試并使用Gnuplot生成圖表 #/Linux/2014-03/98566.htm
RH442攻略之Gnuplot #/Linux/2014-03/98405.htm
Ubuntu下應用Gnuplot進行數(shù)據(jù)的可視化 #/Linux/2011-12/50358.htm
利用oprofile分析fortran并用Gnuplot畫圖的shell腳本 #/Linux/2011-04/34497.htm
Ubuntu下安裝Gnuplot 4.6.0 #/Linux/2014-09/106297.htm
插入一點業(yè)務背景
我前面有篇文章介紹了一鍵搭建blackhole從庫的工具,其中提到,blackhole從庫的一個用途是作為某種分析程序的數(shù)據(jù)源。實際上,微博相關的幾個關鍵數(shù)據(jù)指標,包括用戶、關注、博文、轉發(fā)、評論、私信等,都搭建了對應的blackhole從庫,我們的分析程序會定期解析binlog,來分析用戶在某個時段的活躍程度。為了得到近乎適時的統(tǒng)計數(shù)據(jù),我采用crontab每隔5分鐘在blackhole從庫上執(zhí)行一次flush logs,緊接著分析被切割的日志。這樣就可以立即得到粒度為5分鐘的用戶活躍統(tǒng)計數(shù)據(jù),再保存到數(shù)據(jù)庫中,用各種方法展現(xiàn),環(huán)比、同比、平均值等,都可以很容易的獲得。
利用gnuplot作圖
有了數(shù)據(jù)之后,采用rrdtool、excel、google API等都可以作圖。我的需求是,每天上午10點,定時郵件發(fā)送前一天的統(tǒng)計數(shù)據(jù),并附上直觀的圖形說明。最終,我選擇采用gnuplot來作圖。 附數(shù)據(jù)如下(數(shù)據(jù)非真實數(shù)據(jù)。一共是7列,其中日期和時間整體作為一列,別混淆):
2012-10-13 03:45:16 1893 61564 28476 37180 265190 8794
2012-10-13 03:50:16 1823 60016 27296 38648 276206 8753
2012-10-13 03:55:15 1606 58628 26688 32292 262998 8377
2012-10-13 04:00:15 1539 57988 25628 36472 249984 8079
2012-10-13 04:05:14 1641 58552 25432 35064 233832 7493
2012-10-13 04:10:16 1731 59808 25108 36348 235218 6909
2012-10-13 04:15:15 1720 56444 24124 38072 228382 6892
2012-10-13 04:20:15 1680 53952 23088 38480 233300 6742
2012-10-13 04:25:14 1582 53600 22420 37072 232974 6477
2012-10-13 04:30:16 1531 53560 22612 37896 229090 6168
作圖的腳本如下:
#!/usr/bin/gnuplot
set terminal png #輸出格式為png文件
set output "image_output_file.png" #指定數(shù)據(jù)文件名稱
set title "KPI"
set ylabel 'net added count'
set yrange [0:700000] #設置Y軸的范圍
set key right top height 3 spacing 2 #設置圖例
set border 3 lt 3 lw 2 #這會讓你的坐標圖的border更好看
set grid #顯示網(wǎng)格
set key box #它把圖例用一個box裝起來
set xtics nomirror rotate #只需要一個x軸
set ytics mirror #只需要一個y軸
set mytics 5 #可以增加分刻度
set mxtics 1
set pointsize 0.4 #點的像素大小
set datafile separator '\t' #數(shù)據(jù)文件的字段用\t分開
#注意表的數(shù)據(jù)導出的時候默認是按照tab來分隔的
set xdata time #x軸代表時間
set timefmt "%Y-%m-%d %H:%M:%S" #數(shù)據(jù)文件中時間的格式
set format x " %Y-%m-%d %H:%M" #x坐標軸顯示的數(shù)據(jù)
#設置圖像的大小 為標準大小的2倍
set size 2.3,2
plot 'unit_data.txt' using 1:2 w lp lt 1 lw 2 title "第二列", 'unit_data.txt' using 1:3 w lp lt 2 lw 2 pt 7 title "第三列", 'unit_data.txt' using 1:4 w lp lt 3 lw 2 title "第四列", 'unit_data.txt' using 1:5 w lp lt 4 lw 2 title "第五列", 'unit_data.txt' using 1:6 w lp lt 5 lw 2 title "第六列", 'unit_data.txt' using 1:7 w lp lt 6 lw 2 title "第七列"
【免責聲明】本文部分系轉載,轉載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請在30日內與聯(lián)系我們,我們會予以更改或刪除相關文章,以保證您的權益!