周末做了K-Means++聚类分析之NBA后卫分类,但是我不爽的一点是最后的结果不直观,需要我仔细研究数据,才能确定,我的分类效果对不对。当时就想做个可视化的图,对还是错,一目了然。
matlab是一个可视化的工具,其实他更是一个编程的开发工具,他太厚重了,matlab2012a的安装包就5.4G
。。后来我找到了gnuplot。这个是我买的恶意软件分析诀窍与工具箱里面推荐的一个工具,我这两天试了试,工具很不错,功能很强大,是杀人越货,居家
旅行之必备工具,呵呵。
安装很简单:
- apt-get install gnuplot gnuplot-doc
- int output_result(struct player* players,int player_num,int cluster_num)
- {
- int i ,j;
- char cmd[256] = {0};
- struct player *p =players;
- for(i =0 ; i< cluster_num;i++)
- {
- fprintf(stderr,"
the group %d
",i);
- for(j=0,p=players;j<player_num;j++,p++)
- {
- if(p->group == i)
- {
- snprintf(cmd,256,"cat %s |sed -n "%dp" >>out%d",FILEPATH,j+1,i);
- system(cmd);
- // fprintf(stderr,"%s ",p->name);
- }
- }
- }
- fprintf(stderr,"
");
- }
- root@manu:~/code/c/lin_rank# wc out*
- 55 220 2164 out0
- 23 92 899 out1
- 22 88 848 out2
- 100 400 3911 总用量
- root@manu:~/code/c/lin_rank#
gnuplot的使用比较简单,就是终端上敲入gnuplot,就打开的这个工具。
- root@manu:~/code/c/lin_rank#
- root@manu:~/code/c/lin_rank# gnuplot
- G N U P L O T
- Version 4.4 patchlevel 3
- last modified March 2011
- System: Linux 3.2.0-29-generic-pae
- Copyright (C) 1986-1993, 1998, 2004, 2007-2010
- Thomas Williams, Colin Kelley and many others
- gnuplot home: http://www.gnuplot.info
- faq, bugs, etc: type "help seeking-assistance"
- immediate help: type "help"
- plot window: hit 'h'
- Terminal type set to 'wxt'
- gnuplot>
- splot "out0" using 2:3:4 pointtype 16 title "group 0",
- "out1" using 2:3:4 pointtype 10 title "group 1",
- "out2" using 2:3:4 pointtype 2 title "group 2"
我的解决办法和归一化也是一样的,就是我告诉他这个比例:
- average[0] = 3.317520 average[1] = 3.990000 average[2] = 12.655000
- set xrange [0:10]
- set yrange [0:12]
- set zrange [0:36]
gnuplot还能导出png图片,指令如下:
- set term pngcairo size 1200,600
- set output "cluster.png"
- replot
- set output
- set term wxt
分类效果看起来还不错,呵呵。我不满意的地方就是人工干预太多,如果能一条龙完全用代码或者脚本实现就好了。
总之了,这个gnuplot的确是个好工具,很好使用,向大家推荐。
参考文献:
1 使用 gnuplot 科学作图 ,马欢前辈整理的pdf资料,非常好,十分感激前辈
相关热门文章
给主人留下些什么吧!~~
评论热议