我有两对数据集,我需要使用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
Run Code Online (Sandbox Code Playgroud)
Zit*_*rax 28
您需要使用linecolor而不是lc,例如:
set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"
"帮助设置样式线"为您提供更多信息.
p11*_*00i 14
我遇到过这个话题,因为我也在用虚线挣扎(gnuplot 4.6 patchlevel 0)
如果您使用:
set termoption dashed
Run Code Online (Sandbox Code Playgroud)
您发布的代码将相应地工作.
相关问题:
但是,如果我想导出一个png:set terminal png,这就不再适用了.任何人都知道为什么?
事实证明,gnuplots png导出库不支持这一点.
Possbile解决方案:
pngcairo用作你的终端(set terminal pngcairo)它会起作用小智 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}}
Run Code Online (Sandbox Code Playgroud)
一个例子:
set terminal pdfcairo monochrome enhanced font "Times-New-Roman,12" dashed
Run Code Online (Sandbox Code Playgroud)
小智 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`
Run Code Online (Sandbox Code Playgroud)
编辑:抱歉,这对你不起作用。我只记得线条颜色是在 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"
Run Code Online (Sandbox Code Playgroud)