【发布时间】:2012-12-14 06:11:48
【问题描述】:
在 Gnuplot 中,linetype 或 lt 标志允许用户选择 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()
这是输出:
正如您在上面的代码中看到的,lt(线型)在Gnuplot.PlotItems.Data(..., with_=...) 命令中。在普通的 Gnuplot 中,我们只需执行 lt 1 即可选择线型 1。然而,Gnuplot-Py 似乎随意选择线型(请注意,在上图中,一条线是实线,一条线是虚线)。让我们尝试几种在 Gnuplot-Py 中手动更改线型的策略...
策略 1. 我在with_ 字符串中尝试了lt 1 而不是lt。这会引发错误,但仍会产生与我们在上面看到的相同的图。
plot1 = Gnuplot.PlotItems.Data(data1, with_="linespoints lt 1 rgb 'black' lw 6 pt 1", title="data1") #returns the error `line 0: ';' expected
策略 2。 我还尝试从 with_ 字符串中删除 lt。这会引发错误并忽略data1 行的格式(请参阅下面data1 的绿线)。
plot1 = Gnuplot.PlotItems.Data(data1, with_="linespoints rgb 'black' lw 6 pt 1", title="data1") #returns the error `line 0: ';' expected
策略3。如果我添加gp('set style lt 1'),我再次得到错误line 0: expecting 'data', 'function', 'line', 'fill' or 'arrow',并且情节与上面显示的原图没有变化。
如何在 GnuplotPy 中手动选择线型?
【问题讨论】:
-
策略3应该是
gp('set style line 1 lc rgb "blue"')等
标签: python visualization gnuplot data-visualization