For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
Gnuplot簡(jiǎn)介
Gnuplot是一款非常強(qiáng)大的跨平臺(tái)作圖工具。小到畫各種數(shù)學(xué)函數(shù)圖,大到寫作科技論文、實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)公式,它都能輕松應(yīng)對(duì)。秉承UNIX的優(yōu)良傳統(tǒng),gnuplot使用純文本作為輸入,因其包含的大量命令和變量,使得其有著無(wú)與倫比的表現(xiàn)力。
對(duì)gnuplot 作圖有興趣的同學(xué),可以參考其官網(wǎng)的手冊(cè),其中有大量的范例。
時(shí)序圖的繪制—使用Gnuplot #/Linux/2014-08/104930.htm
Tpcc-MySQL測(cè)試并使用Gnuplot生成圖表 #/Linux/2014-03/98566.htm
RH442攻略之Gnuplot #/Linux/2014-03/98405.htm
Ubuntu下應(yīng)用Gnuplot進(jìn)行數(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
插入一點(diǎn)業(yè)務(wù)背景
我前面有篇文章介紹了一鍵搭建blackhole從庫(kù)的工具,其中提到,blackhole從庫(kù)的一個(gè)用途是作為某種分析程序的數(shù)據(jù)源。實(shí)際上,微博相關(guān)的幾個(gè)關(guān)鍵數(shù)據(jù)指標(biāo),包括用戶、關(guān)注、博文、轉(zhuǎn)發(fā)、評(píng)論、私信等,都搭建了對(duì)應(yīng)的blackhole從庫(kù),我們的分析程序會(huì)定期解析binlog,來(lái)分析用戶在某個(gè)時(shí)段的活躍程度。為了得到近乎適時(shí)的統(tǒng)計(jì)數(shù)據(jù),我采用crontab每隔5分鐘在blackhole從庫(kù)上執(zhí)行一次flush logs,緊接著分析被切割的日志。這樣就可以立即得到粒度為5分鐘的用戶活躍統(tǒng)計(jì)數(shù)據(jù),再保存到數(shù)據(jù)庫(kù)中,用各種方法展現(xiàn),環(huán)比、同比、平均值等,都可以很容易的獲得。
利用gnuplot作圖
有了數(shù)據(jù)之后,采用rrdtool、excel、google API等都可以作圖。我的需求是,每天上午10點(diǎn),定時(shí)郵件發(fā)送前一天的統(tǒng)計(jì)數(shù)據(jù),并附上直觀的圖形說(shuō)明。最終,我選擇采用gnuplot來(lái)作圖。 附數(shù)據(jù)如下(數(shù)據(jù)非真實(shí)數(shù)據(jù)。一共是7列,其中日期和時(shí)間整體作為一列,別混淆):
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] #設(shè)置Y軸的范圍
set key right top height 3 spacing 2 #設(shè)置圖例
set border 3 lt 3 lw 2 #這會(huì)讓你的坐標(biāo)圖的border更好看
set grid #顯示網(wǎng)格
set key box #它把圖例用一個(gè)box裝起來(lái)
set xtics nomirror rotate #只需要一個(gè)x軸
set ytics mirror #只需要一個(gè)y軸
set mytics 5 #可以增加分刻度
set mxtics 1
set pointsize 0.4 #點(diǎn)的像素大小
set datafile separator '\t' #數(shù)據(jù)文件的字段用\t分開(kāi)
#注意表的數(shù)據(jù)導(dǎo)出的時(shí)候默認(rèn)是按照tab來(lái)分隔的
set xdata time #x軸代表時(shí)間
set timefmt "%Y-%m-%d %H:%M:%S" #數(shù)據(jù)文件中時(shí)間的格式
set format x " %Y-%m-%d %H:%M" #x坐標(biāo)軸顯示的數(shù)據(jù)
#設(shè)置圖像的大小 為標(biāo)準(zhǔn)大小的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 "第七列"
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!