【问题标题】:Gnuplot histogram gap does nothingGnuplot 直方图间隙什么都不做
【发布时间】:2015-05-04 15:18:12
【问题描述】:

我有一个绘制直方图的 gnuplot 脚本。我使用了以下语法:

set style data histogram
set style histogram cluster gap 2
set style fill solid

set logscale y

rgb(r,g,b) = int(r)*65536 + int(g)*256 + int(b)

plot 'histogram_data' using (column(0)):2:(0.5):(rgb($3,$4,$5)):xticlabels(1) w boxes notitle lc rgb variable

最后一行的作用是:使用第 1 列作为 x 标签,第 2 列作为直方图条的高度,0.5 作为框宽度,第 3、4 和 5 列作为 rgb 值来为条着色。

现在,问题在于修改第 2 行中的间隙参数不会以任何方式改变条之间的间距,尽管据我所知这是调整这种间距的正确方法。我正在使用 gnuplot 4.6 补丁级别 4。

【问题讨论】:

  • 正确,gap 什么都不做,因为您使用boxes 灌封样式而不是histogram
  • 我明白了,这是一件非常好的事情。但是现在如果我将boxes 更改为histogram,它会输出Too many using specs for this style。我想这是因为我在情节线中指定了颜色、标签等。如何使用框调整条之间的空间?或者,或者,如何使用直方图指定 xticlabels 和动态颜色?
  • 您不能为histogram 样式提供x 坐标。你是对的,使用可变颜色也不适用于直方图,而且它也没有任何意义。所以,使用盒子很好

标签: gnuplot histogram spacing


【解决方案1】:

我找到了一种使用盒子的方法,尽管我认为它不是很干净:

plot 'histogram_data' u (column(0)*2+1):2 w boxes notitle lc rgb 'white',\
     'histogram_data' u (column(0)*2):2:(rgb($3,$4,$5)):xticlabels(1) w boxes notitle lc rgb variable;

这个命令在偶数槽上绘制主图的所有数据,在奇数槽上绘制一个白框。所以 plot 命令中的第一行是绘制绘图的每个框之间的间隙(这些间隙的宽度可以使用 boxwidth 属性我认为但我没有测试过),而第二行正在绘制实际情节。

我找不到使用histogram 绘图样式的方法,保留数据文件中指定的可变颜色。

【讨论】:

  • 你为什么不直接使用set boxwidth 0.66 relative; plot "histogram_data" using 0:2:(rgb($3,$4,$5)):xticlabels(1) with boxes notitle lc rgb var
  • 因为我在x轴上有很多标签,我需要使用足够大的字体来表示它们,所以每两个框之间我真的需要相当大的空间。
  • 但这是一个不同的问题。我的示例只是为了展示如何在两个框之间获得一些白色间隙。如果您的标签重叠,无论如何您都会遇到这个问题。尝试使用set xtics rotate by 90 right 旋转标签。
  • 我的标签已经旋转了 90 度。问题是我需要一个相当大的字体,所以这些标签无论如何都会重叠。在每两个框之间绘制一个新框(当然没有标签)可以防止旋转的标签重叠。
猜你喜欢
  • 1970-01-01
  • 2013-07-28
  • 2012-07-24
  • 1970-01-01
  • 1970-01-01
  • 2017-08-28
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多