在GnuplotPy中设置线型?

时间:2012-12-29 04:16:08

标签: python visualization gnuplot data-visualization

在Gnuplot中,linetypelt标志允许用户选择line type(虚线,点线,实线等)。

我正在使用名为Gnuplot-Py的Python包装器。这是一个例子:

import Gnuplot
data1 = [[3, 0.03], [4, 0.02], [5, 0.017]]
data2 = [[3, 0.027], [4, 0.015], [5, 0.014]]

gp = Gnuplot.Gnuplot(persist = 1)
gp('set terminal x11 size 350,225') 
gp('set pointsize 2')
gp('set yrange [0.0:0.05]')
plot1 = Gnuplot.PlotItems.Data(data1, with_="linespoints lt rgb 'black' lw 6 pt 1", title="data1")
plot2 = Gnuplot.PlotItems.Data(data2, with_="linespoints lt rgb 'blue' lw 6 pt 8", title="data2")
gp.plot(plot2, plot1)

epsFilename='testLines.eps'
gp.hardcopy(epsFilename, terminal = 'postscript', enhanced=1, color=1) #must come after plot() function
gp.reset() 

这是输出: enter image description here


正如您在上面的代码中所看到的,lt(linetype)位于Gnuplot.PlotItems.Data(..., with_=...)命令中。在简单的Gnuplot中,我们只需lt 1来选择行类型1.但是,Gnuplot-Py似乎任意选择行类型(注意一行是实线,一行在上图中是虚线)。让我们尝试一些策略来手动更改Gnuplot-Py中的线型......

策略1。我在lt 1字符串中尝试了lt而不是with_。这会引发错误,但它仍会产生与我们上面看到的相同的情节。

plot1 = Gnuplot.PlotItems.Data(data1, with_="linespoints lt 1 rgb 'black' lw 6 pt 1", title="data1") #returns the error `line 0: ';' expected

策略2。我还尝试从lt字符串中删除with_。这会引发错误并忽略data1行的格式(请参阅下面data1的绿线)。

plot1 = Gnuplot.PlotItems.Data(data1, with_="linespoints rgb 'black' lw 6 pt 1", title="data1") #returns the error `line 0: ';' expected

enter image description here

策略3。如果我添加gp('set style lt 1'),我又会收到错误line 0: expecting 'data', 'function', 'line', 'fill' or 'arrow',并且图表与上面显示的内容相同。


如何在GnuplotPy中手动选择线型?

1 个答案:

答案 0 :(得分:1)

这有效:

with_="linespoints lt 1 lw 6 pt 1 linecolor rgb 'black'" #put this inside Gnuplot.PlotItems.Data() command

在我的原帖中,我正在做with_="linespoints lt rgb 'black' ..."。换句话说,我一起混淆了linespointslinecolor个论点。即使我没有指定linetype,我也不确定为什么这不会崩溃。

无论如何,要点是我们需要with_字符串的这种设置:
linespoints (args to linespoints) linecolor (args to linecolor)

结果如下: enter image description here