python - Gnuplot 中的连续、大小固定、透明的图形

标签 python gnuplot

从这里开始:

#!/usr/bin/env python
from numpy import *
import Gnuplot as gp
import Gnuplot.funcutils

x = (1,2,3)
y=(2,4,5)
g = gp.Gnuplot()
d = gp.Data(x,y,with_="lines",title='Graph')
g.plot(d)
g('set size 200,100')
g.output('filename.svg')

我想要一个图形,其中点连接到一条线,尺寸固定且透明。 有什么建议吗?

最佳答案

首先,删除 g('set size 200,100')。这个命令基本上告诉 gnuplot 绘制一个在 x 方向比正常大 200 倍,在 y 方向大 100 倍的图——当你绘制你的图时,它要么巨大,要么你实际上只能看到角落里的一小部分情节(您可能什么都看不到)。

接下来,这是我将如何在纯 gnuplot 中完成您想要的(我认为 -- 对其进行测试,看看我是否确实正确地解释了您的请求):

set terminal svg size 200,100
set output "filename.svg"
plot '-' w linespoints linestyle 1 pointtype 7 #just picked some linestyles and pointtypes... 
   1 2
   2 4
   3 5
   e

为了将其放入 gnuplot-py,您可以将其全部包装在 g('...') 中——这是一种非常丑陋的方法,但它应该有效。我不知道 gnuplot-py 将什么识别为有效绘图类型以及它不识别什么……您可能必须为此深入研究源代码。

我也使用了“内联数据”,但您可以轻松地将您的点写入一个临时文件(使用 tempfile 模块并绘制它,如果这样更容易的话)。

看起来 d = gp.Data(x,y,with_="linespoints",title="data") 应该可以工作,但我不 promise ...

我的猜测也是 g.output('filename.svg',terminal='svg',size="200,100") 可能有用,但我从来都不喜欢 gnuplot-py 因为它的行为似乎不像我认为的那样。如果这不起作用,您需要在绘图之前求助于 g('...')。

总而言之,如果您尝试这样做会发生什么?

#!/usr/bin/env python
from numpy import *
import Gnuplot as gp
import Gnuplot.funcutils

x = (1,2,3)
y=(2,4,5)
g = gp.Gnuplot()
d = gp.Data(x,y,with_="linespoints",title='Graph')
g("set terminal svg size 200,100")
g("set output 'filename.svg'")
g.plot(d)

关于python - Gnuplot 中的连续、大小固定、透明的图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10588824/

相关文章:

python - 如何在 pyplot 中绘制每个 x 值的 y 轴平均值

python - 从unix时间字符串转换为python日期类型,当CDT存在时不转换

python - Virtualenv 和 Pip 永远挂起

python - Pandas 货币换算

linux - gnuplot "datafile separator"不起作用

python - 在 Apache 2.4 Web 服务器上运行 Python 3 脚本

gnuplot - 如何绘制平滑曲线以及原始数据?

latex - 使用 gnuplot 生成 Latex 绘图的推荐工作流程?

gnuplot - 将轴视为日期/时间(纪元)

python - 通过python将文件输入到gnuplot