gnuplot-如何绘制不可见点,使该图仅用于标记x轴

问题描述 投票:1回答:2

我在数据文件test1.txt中具有以下数据:

A   36  1
A   35  1
B   48  2
B   37  2
B   15  2
C   36  3
C   25  3

test2.txt

A   16  1
A   25  1
B   38  2
B   45  2
C   36  3

绘制完成为:

dat1="test1.txt"
dat2="test2.txt"
plot dat1 u ($3-0.2):2 w p t 'title 1', \
     dat2 u ($3+0.2):2 w p t 'title 2', \
     dat1 using 3:(0):xticlabels(1):x2ticlabels(1) notitle, \
     dat2 using 3:(0):xticlabels(1):x2ticlabels(1) notitle

重点是在x轴的第一列中添加标签。问题是剧情的最后两个部分

dat1 using 3:(0):xticlabels(1):x2ticlabels(1) notitle, \
dat2 using 3:(0):xticlabels(1):x2ticlabels(1) notitle

y=0处产生分数。而且因为我不能(或者我不知道如何使用)

plot dat1 u ($3-0.2):2:xticlabels(1) w p t 'title 1'

((因为它在x坐标$3-0.2而不是$3处绘制标签,这是我要求的,所以我被迫再做两个虚拟图,但它们会产生点,并且我不知道如何有效地除了通过例如将图的范围之外移动之外,避免这种情况仅绘制正值时的dat1 using 3:(0):xticlabels(-1):x2ticlabels(-1)。有什么好的方法可以解决这个问题?

gnuplot
2个回答
0
投票

我不太了解您要如何处理数据,但是,如果要使x轴上的点不可见,可以将最后两个图的线色设置为完全透明:

dat1 using 3:(0):xticlabels(1):x2ticlabels(1) linecolor "#FFFF0000" notitle, \
dat2 using 3:(0):xticlabels(1):x2ticlabels(1) linecolor "#FFFF0000" notitle

在最新版本的Gnuplot(link)中,可以添加透明度,在这种特殊情况下,您希望为线条颜色设置完全透明度,以使点不可见。可以使用十六进制符号#AA RRGGBB设置颜色格式和透明度,其中AA(alpha)控制颜色的透明度,对于完全透明度,您想要FF]​​>等效于< [255,请注意我的线条颜色是RED,但是因为它是完全透明的,所以我们看不到它。Plot with Full Transparency


0
投票
我对您的问题的理解如下:您有一些要在x中移动+/- 0.2的数据,但不应移动相应的tic。你快到那儿了。当然,y=0处有一些要点,因为您告诉gnuplot这样做。当然,您也可以通过完全透明的点来实现“不可见”的含义,但是更简单的方法可能是在NaN处“绘制”这些点,即无处。
© www.soinside.com 2019 - 2024. All rights reserved.