注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

(转载)gnuplot 绘制 柱状图  

2012-12-20 17:28:09|  分类: 电脑常识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

柱状图

--------------数据文件'requests.txt' 内容-------------------------------------------

### 文件开始 ###

# 每秒request性能比较 (mm)

#

Requests Trace_OFF Log4cpp_file old_Trace new_Trace    

# ======================

one_module 3552 712 1166 2471    

2_module 3552 712 1166 2471    

### 文件结束 ###

------------------------------------------------------------------------


命令

gnuplot> set style data histogram

gnuplot> set style histogram clustered gap 1

gnuplot> set style fill solid 0.4 border


plot 'requests.txt' using 2:xticlabels(1) title columnheader(2), '' using 3:xticlabels(1) title columnheader(3),  '' using 4:xticlabels(1) title columnheader(4),'' using 5:xticlabels(1) title columnheader(5)




参考了这里,这个博客例子不错 

谈谈gnuplot(三十七):柱状图

http://blog.sciencenet.cn/blog-373392-527507.html

谈谈gnuplot(四十):统计直方图

http://blog.sciencenet.cn/blog-373392-529904.html


复制一下,便于查找

除了点线图外,柱状图也是一种常用的作图方式。我们还用前两讲用过的 "precipitation.dat“ 数据文件作例子:
gnuplot> set style data histogram
gnuplot> set style histogram clustered gap 1
gnuplot> set style fill solid 0.4 border
gnuplot> plot "precipitation.dat" using 2, '' using 3

(转载)gnuplot 绘制 柱状图 - widebright - widebright的个人空间

set style data histogram 命令告诉 gnuplot 所有数据绘图都使用 histogram 风格。set style histogram 命令设置 histogram 作图的参数,例如 clustered 模式就是像上图那样,把几组数据并排画在一起,gap 1 就表示各簇数据之间空白的宽度等于数据柱宽度的 1 倍。填充风格命令(set style fill)上次我们已经介绍过了。

这里我们发现一个 histogram 和一般点线作图的不同:一般点线作图,每个图都要提供 x,y 两组数据,而 histogram图只需要提供一组数据,每个数据自动画在 X 轴上的非负整数位置。这时候,X 轴上的标注并不是我们想要的,图例中的标注也不符合我们的要求。我们以前在“坐标取值范围及刻度”和“多组数据绘图”讲过,这两处的标注,可以分别用 set xtics 命令和 title 参数来设置。这里提供另一种改变标注的方法,我们把 "precipitation.dat“ 文件稍微修改一下:

### 文件开始 ###
# 各城市月平均降水量 (mm)
#
月份    北京    上海    
# ======================
一月    2.5    38.1    
二月    5.1    58.4    
三月    10.2   81.3    
四月    25.4   101.6    
五月    27.9   114.3    
六月    71.1   152.4    
七月    175.3  129.5    
八月    182.9  132.1    
九月    48.3   154.9    
十月    17.8   61.0    
十一月  5.1    50.8    
十二月  2.5    35.6    
### 文件结束 ###


我们把修改后的文件称作 "precipitation_v2.dat"。和原文件相比,这里有两处改动:
  1. 原文件中包含城市名称的一行是注释掉的,新文件里这一行表示注释的 # 字符被去掉了;

  2. 原文件中第一列用阿拉伯数字表示的月份,新文件里被换作了中文月份名称。

下面来看新的例子:
gnuplot> plot "precipitation_v2.dat" using 2:xticlabels(1) title columnheader(2), '' using 3:xticlabels(1) title columnheader(3)

(转载)gnuplot 绘制 柱状图 - widebright - widebright的个人空间

这里 using 参数的数据列号后面,增加了一个新的 xticlabels(1),这表示使用第 1 列的内容作为每个数据的 X 轴标注。另外,title 参数后面跟了一个 columnheader(n) 函数,这表示使用第 n 列的第一行内容作为每组数据的title。这样,我们可以把每组数据的横轴和图例标注预先存入数据文件中,画图时再调用。

除了 clustered 模式,histogram 作图还有 rowstacked 模式,就是把几组数据竖着垒起来:
gnuplot> set style histogram rowstacked
gnuplot> set boxwidth 0.8 relative
gnuplot> set xtics rotate by -45
gnuplot> replot

(转载)gnuplot 绘制 柱状图 - widebright - widebright的个人空间

rowstacked 模式没有 gap 参数,我们这里使用 set boxwidth 命令设置数据柱相对宽度。同时,X 轴标注被旋转了 45 度。这在柱状图里很常见,因为密排的柱状图往往没有足够的空间显示 X 轴标注,旋转之后显示空间便增大了。

既然有 rowstacked,有没有 columnstacked 呢?答案是有的。rowstacked 逐行把数据叠加显示,而columnstacked 逐列把数据叠加。除此之外,还有 errorbars 模式,在 clustered 基础上增加误差条。由于这两种模式和之前讲过的很类似,所以就不举例了。



  评论这张
 
阅读(3232)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017