gnuplot.py情节的硬拷贝

时间:2014-02-27 12:51:42

标签: python plot gnuplot

这是我的代码:

d1 = Gnuplot.Data(x1,y1, with_="lines lt rgb 'red'", title="1")
d2 = Gnuplot.Data(x2,y2, with_="lines lt rgb 'red'", title="2")
d3 = Gnuplot.Data(x3,y3, with_="lines lt rgb 'red'", title="3")
g.title("aaa")
g('set size 1,0.75')
g('set grid')
g('set term x11 2')
g('set logscale x')
g('set xtics 1,2,110')
g('set xrange [1:110]')
g.plot(d1,d2,d3)
g.hardcopy("aaa.png", terminal='png')

在gnuplot.py和硬拷贝的临时情节中,由于'设置大小为1,0.75',我在上部有一个大的白色条带。 是否可以避免这种情况并使图形与图形一样大?

由于

1 个答案:

答案 0 :(得分:2)

这就是命令set size的用途:相对于总画布/图像大小更改绘图大小。要更改图像大小,必须使用size命令的set terminal参数。不幸的是,gnuplot-py的termdefs.py中定义的某些终端不支持这种情况。正如termdefs.py中的评论所说:

  

“”“终端定义文件。

     

该模块描述了gnuplot各种可用的选项   终端。目前,它只支持一些终端,但是   基础设施可以根据需要添加其他基础设施。 ...

svg终端支持size参数:

import Gnuplot
from numpy import *

x1 = arange(1,10)
y1 = arange(1,10)

d1 = Gnuplot.Data(x1,y1, with_="lines lt rgb 'red'", title="1")
g = Gnuplot.Gnuplot()

g.title("aaa")
g('set grid')
g('set logscale x')
g('set xtics 1,2,110')
g.plot(d1)
g.hardcopy("aaa.svg", terminal='svg', size=[800,400])

最灵活的方法是将原始终端定义字符串传递给gnuplot。然后,行g.hardcopy...变为:

g('set terminal pngcairo size 800,400')
g.set_string('output', 'aaa.png')
g.refresh()
g.set_string('output')

这也允许您使用更好的pngcairo终端而不是png终端。