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
我现在可以看到我的图表,我想要的东西。
晚上好! :)
非常感谢,
张.
我正在尝试获取不同的点颜色并在同一图表的 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
我现在可以看到我的图表,我想要的东西。
晚上好! :)
非常感谢,
张.