Gnuplot,更改数据点和 x 轴的颜色

Gnuplot, change the color of data points and x-axis

我正在尝试获取不同的点颜色并在同一图表的 x 轴上输入第二个文件的点。

我有两个不同的文件,其中包含:(y 轴:D、A、Q、F;x 轴:1-5 和 6-10) 1.file enter image description here 2. 文件 enter image description here

然后我写了这段代码来绘制:

set style data labels
xcoord(N)= (N)
ycoord(N) = (column(0)+1)
symbol(N) = strcol(N) ne "/" ? strcol(N) : "/"
set xrange [0:10]
set yrange [0:5]
set ytics ("D" 1, "A" 2, "Q" 3, "F" 4)
plot for [N=0:6] 'doc.txt' using (xcoord(N)):(ycoord(N)):(symbol(N)):(symbol(N)) w labels tc lt 7 font "Helvetica,12" notitle, \
for [N=0:6] 'doc1.txt' using (xcoord(N)):(ycoord(N)):(symbol(N)):(symbol(N)) w labels tc lt 1 font "Helvetica,10" notitle

目前输出如下所示: 1.file enter image description here graph of two data files enter image description here

的图表

如你所见,所有的点都是重叠的。 我想为 /、5、g、3 和 o 使用不同的颜色 并在 x 轴 6-10 中绘制第二个文件的点。 我怎样才能做到这一点?有人可以帮助纠正我的命令。 非常感谢。

不确定我是否完全理解这个问题,但是要将第二个文件中的点在 x 上移动六个单位,您可以将绘图命令修改为:

plot for [N=0:6] 'doc.txt' using (xcoord(N)):(ycoord(N)):(symbol(N)):(symbol(N)) w labels tc lt 7 font "Helvetica,12" notitle, \
     for [N=0:6] 'doc1.txt' using (6+xcoord(N)):(ycoord(N)):(symbol(N)):(symbol(N)) w labels tc lt 1 font "Helvetica,10" notitle

你能说明一下你想用什么颜色来表示这些点吗?您的示例输出确实对每个文件中的点使用了不同的颜色;这不是你想要的吗?

编辑

我正在编一个数据格式,因为你没有显示任何实际数据,但也许下面的例子足以让你开始。

$DATA << EOD
3 F / / 3 g 3
2 Q / / o / 5
1 A / o / / 5
0 D / / 5 / g
EOD

set xrange [0:7]
set yrange [-1:4]
set tics nomirror
set border 3
unset key

# These are the hexadecimal RGB representations of 
#              "red"      "blue"    "yellow" "green"   "purple"
array colors = [0xFF0000, 0x0000FF, 0xFFFF00, 0x00FF00, 0xC080FF]
array symbol = ["/", "5", "g", "3", "o"]

color( sym ) = sum [i=1:5] (symbol[i] eq sym ? colors[i] : 0)

plot for [N=1:6] $DATA using (N) : (column(1)) : (strcol(N)) : (color(strcol(N))) \
                 with labels tc rgb variable font ":Bold"

或者,您可以使用调色板颜色和数值而不是离散的 RGB 颜色名称来做一些事情。那将是一种不同的方法。

非常感谢您的回答。这非常非常有帮助。 [在此处输入图片描述][1] [1]: https://i.stack.imgur.com/gLuoF.png

我现在可以看到我的图表,我想要的东西。

晚上好! :)

非常感谢,

张.