Gnuplot直方图中每N个框的颜色

Gnuplot直方图中每N个框的颜色,gnuplot,histogram,Gnuplot,Histogram,我正在绘制大量的条形图,因此我只标记每N个xtic(如.dat文件中所示,用“”标记)。以下是我输入的“.dat”文件的前15行: 绘制这些数据效果很好。然而,在我的实际.dat文件中,我有大约500k的值要绘制(500k框)。因此,我想用某种颜色给每个10k的盒子上色(或者在上面的例子中,每5次)。这是使用的代码: set terminal postscript eps color set output "genetic.eps" set ylabel "Number of Exons" s

我正在绘制大量的条形图,因此我只标记每N个xtic(如.dat文件中所示,用“”标记)。以下是我输入的“.dat”文件的前15行:

绘制这些数据效果很好。然而,在我的实际.dat文件中,我有大约500k的值要绘制(500k框)。因此,我想用某种颜色给每个10k的盒子上色(或者在上面的例子中,每5次)。这是使用的代码:

set terminal postscript eps color
set output "genetic.eps"
set ylabel "Number of Exons"

set style fill solid 1.0 noborder

plot "genes.dat" using 2:xticlabels(1) smooth frequency with boxes notitle
谢谢

试试这个

set ylabel "Number of Exons"
set style fill solid 1.0 noborder
plot "test" using ($0+1):($2)  w boxes lc 'blue' t '',\
   'test' u (($0*5)+5):($2):(1) every 5::4 w boxes lc 'red' t ''
它给你提供了以下信息

$0表示行号(从0开始)
every5::4
表示从第4行开始的
每隔5行

当我们不使用每一条线时,我们必须防止钢筋延伸到整个宽度。我们可以通过提供第三个坐标来实现这一点:x-width
:(1)

在您的情况下,平滑频率实际上没有任何作用(仅当多个点具有相同的x坐标时才起作用,但不指定一个,默认情况下使用行号)

我们可以选择平滑频率选项,并使用可变线颜色。如果我们希望将第五个框设为红色,其他框设为蓝色,我们可以这样做

plot "genes.dat" u 0:2:(int($0)%5==0?(255<<16):255):xticlabels(1) with boxes lc rgbcolor variable

plot“genes.dat”u 0:2:(int($0)%5==0?(255我想显式的XTIClabel是多余的。@Christoph,在OP的情况下,它们不是多余的,因为他用它跳过标签(通过让一些标签为空),但确实可以通过其他方式获得标签(在数字标签的情况下)是的,因为这就是
set xtics
的作用:
set xtics 0,5;set xtics add(1):plot'file'u 0:2
首先:感谢您的精彩解释-它真的很有帮助。我尝试过修改一些东西,但没有成功。上面的plot命令对您有效吗?我得到以下错误:
plot“genes.dat”u 0:2:(int)($0)%5==0?(255是的,它对我有效。我用这个确切的命令(文件名除外)创建了附图。你使用的是哪个版本的gnuplot?哦,我没有向下滚动查看你的答案。这很有效,谢谢!还有一件事:当我绘制数据时,x轴的编号不会以最后一个箱子(15)结束但它在18结束(并不是从第一个箱子开始,但y轴和第一个箱子之间有一个小间隙)。您可以通过以下命令手动调整x范围:
set xrange[0.5:15.5]
plot "genes.dat" u 0:2:(int($0)%5==0?(255<<16):255):xticlabels(1) with boxes lc rgbcolor variable