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
4

7 回答 7

28

您需要使用linecolor而不是 lc,例如:

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

“帮助设置样式线”为您提供更多信息。

于 2010-01-15T23:49:44.793 回答
14

我遇到了这个话题,因为我也在用虚线挣扎(gnuplot 4.6 patchlevel 0)

如果您使用:

set termoption dashed

您发布的代码将相应地工作。

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

结果,gnuplots png 导出库不支持这个。
可能的解决方案:

  • 可以简单的导出到ps,然后用pstong转换
  • 根据@christoph,如果您pngcairo用作终端(set terminal pngcairo),它将起作用
于 2012-05-02T22:19:21.140 回答
7

您还可以在设置终端时设置“虚线”选项,例如:

set term pdf dashed
于 2012-07-12T11:11:34.690 回答
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
于 2012-09-22T15:31:49.400 回答
5

您可能想查看 Pyxplot 绘图包http://pyxplot.org.uk,它的语法与 gnuplot 非常相似,但已清理了粗糙的边缘。它非常整齐地处理颜色和线条样式,并且在 x11 和 eps/pdf 终端之间均匀。

你想要在上面做的 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`
于 2012-08-29T23:08:35.863 回答
4

编辑:对不起,这对你不起作用。我只记得线颜色的东西是在 4.2 中。我过去遇到过这个问题,我的解决方法是升级 gnuplot。

您也可以使用设置样式线来控制颜色。“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"

于 2010-01-15T23:32:22.233 回答
3

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

于 2012-01-23T16:54:07.820 回答