在Gnuplot 4.0中选择线型和颜色

36

我有两组数据集,需要使用Gnuplot绘制。

我想用红色绘制第一组数据集,其中一个实线和一个虚线。第二组,我想用蓝色绘制,其中一个实线和一个虚线。

我尝试多次使用set style line,但是我无法获得这种精确的行为。我的最后一次尝试(见附图)将第一对绘成了红色(实线),第二对绘成了蓝色(虚线)。

任何帮助都将不胜感激。

set style line 1 lt 1 lw 3 pt 3
set style line 2 lt 1 lw 3 pt 3
set style line 3 lt 3 lw 3 pt 3
set style line 4 lt 3 lw 3 pt 3
plot 'data1.dat' using 1:3 w l ls 1,\
     'data1.dat' using 1:4 w l ls 2,\
     'data2.dat' using 1:3 w l ls 3,\
     'data2.dat' using 1:4 w l ls 4
7个回答

29

你应该使用linecolor而不是lc,像这样:

set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"

使用"help set style line"可以获得更多信息。


8
他正在询问Gnuplot 4.0版本,该版本不支持使用"rgb "red""这样的语法。 - Krzysztof Krasoń

14

我遇到了这个话题,因为我也遇到了虚线的问题(gnuplot 4.6补丁级别0)

如果您使用:

set termoption dashed

您发布的代码将按预期工作。

相关问题:
但是,如果我想使用以下命令导出png: set terminal png则不再起作用。 有人知道为什么吗?

结果发现,gnuplot的png导出库不支持此操作。
可能的解决方案:

  • 您可以简单地导出为ps格式,然后使用pstopng进行转换。
  • 根据@christoph的说法,如果您将其终端设置为pngcairoset terminal pngcairo),则可以正常工作。

2
经过一些研究,发现gnuplot的png导出库不支持此功能。 但是可以先将其导出为ps格式,然后使用pstopng进行转换。 - p1100i
2
png 终端(使用 libgd)不支持虚线,但 pngcairo 终端支持虚线。 - Christoph

7

以下是语法:

  set terminal pdf {monochrome|color|colour}
                   {{no}enhanced}
                   {fname "<font>"} {fsize <fontsize>}
                   {font "<fontname>{,<fontsize>}"}
                   {linewidth <lw>} {rounded|butt}
                   {solid|dashed} {dl <dashlength>}}
                   {size <XX>{unit},<YY>{unit}}

并提供一个示例:

set terminal pdfcairo monochrome enhanced font "Times-New-Roman,12" dashed

7

当您设置终端时,您还可以设置“dashed”选项,例如:

set term pdf dashed

5
你可能想要看一下 Pyxplot 绘图软件包,它与 gnuplot 有非常相似的语法,但更为简洁。它可以很好地处理颜色和线条样式,并在 x11 和 eps/pdf 终端之间进行统一。你需要做的是访问http://pyxplot.org.uk
上述内容的 Pyxplot 脚本如下:
set style 1 lt 1 lw 3 color red
set style 2 lt 1 lw 3 color blue
set style 3 lt 2 lw 3 color red
set style 4 lt 2 lw 3 color blue
plot 'data1.dat' using 1:3 w l style 1,\
  'data1.dat' using 1:4 w l style 2,\
  'data2.dat' using 1:3 w l style 3,\
  'data2.dat' using 1:4 w l style 4`

4

编辑:抱歉,这对您无效。我刚想起线条颜色是在4.2版本中的。我曾经遇到过这个问题,我的解决方法是升级gnuplot。

您也可以使用set style line来控制颜色。“lt 3”将给您一个虚线,而“lt 1”将给您一个实线。要添加颜色,您可以使用“lc rgb 'color'”。这应该可以满足您的需求:


set style line 1 lt 1 lw 3 pt 3 lc rgb "red"
set style line 2 lt 3 lw 3 pt 3 lc rgb "red"
set style line 3 lt 1 lw 3 pt 3 lc rgb "blue"
set style line 4 lt 3 lw 3 pt 3 lc rgb "blue"


1
不幸的是,在Gnuplot 4.0中lc不可用。 - Escualo
3
据我所知,您无法在x11术语中指定线型。我正在使用gnuplot 4.4版本,无论选项如何(甚至尝试使用linetype),我都从未成功地虚线绘制过任何线条。 - gamen

3

我知道这个问题很久远了,但我发现这个链接非常有用:http://www.gnuplot.info/demo_canvas/dashcolor.html。因此,您可以分别选择线型和线条颜色,但您必须在所有内容之前加上“set termoption dash”(在gnuplot 4.4中为我工作)。


链接已移动:http://skuld.bmsc.washington.edu/~merritt/gnuplot/demo_canvas/dashcolor.html - alfC
链接又过期了...这个链接应该更长时间有效: http://gnuplot.sourceforge.net/demo_4.6/dashcolor.html - Hastur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接