Python 尝试使用set style line时出现GNUplot 4.2语法错误

Python 尝试使用set style line时出现GNUplot 4.2语法错误,python,gnuplot,Python,Gnuplot,我一直在互联网上寻找答案 在gnuplot中绘制颜色线的方法似乎有很多版本。 我有一个数据文件,其中有4列。我想用不同的颜色绘制每一列。 这是我在gnuplot帮助文件中使用的代码片段,但使用这些代码时出现语法错误 set style line 1 lt 1 lc 1 lw 3 # red set style line 2 lt 1 lc 2 lw 3 #green set style line 3 lt 1 lc 3 lw 3 #blue set style line 4 lt 1 lc 4

我一直在互联网上寻找答案

在gnuplot中绘制颜色线的方法似乎有很多版本。 我有一个数据文件,其中有4列。我想用不同的颜色绘制每一列。 这是我在gnuplot帮助文件中使用的代码片段,但使用这些代码时出现语法错误

set style line 1 lt 1 lc 1 lw 3 # red
set style line 2 lt 1 lc 2 lw 3 #green
set style line 3 lt 1 lc 3 lw 3 #blue
set style line 4 lt 1 lc 4 lw 3 #magenta
我已将终端设置为postscript

我已经尝试过这种线型样式的所有组合,包括线型和lc rgb“红色”,例如,它们都不起作用

谁能告诉我怎么了

让我澄清一下,这是python脚本中的gnuplot脚本。代码如下所示:

plot=open('plot.pg','w')
plot_script=“”#!/usr/bin/gnuplot
重置
设置终端后记
#彩色光盘
设置输出“roamingresult.ps”
设置xlabel“时间(秒)”
设置X范围[0:900]
设置XTIC(0、60、120、180、240、300、360、420、480、540、600、660、720、780、840、900)
设置标签“AP1 AP2 AP3 AP4”
设置Y范围[0:5]
设置无键
设置网格
一个一个
设置ytics 1
#设置样式数据框“”
设置样式行1 lt 1 lc 1 lw 3
设置样式行2 lt 1 lc 2 lw 3
设置样式行3 lt 1 lc 3 lw 3
设置样式行4 lt 1 lc 4 lw 3

好的,从您刚刚更新的代码来看,您的问题很清楚

怎么了(快速回答) 您正在将Gnuplot脚本作为字符串包含到Python源代码中。
“”“
标记表示字符串的开始和结束。问题是您用此行终止字符串:

#set style data boxes"""
同样,这个三引号语法标志着Gnuplot字符串的结束,因此接下来的应该是Python代码。现在,
set
的意思与Python完全不同(如果您好奇的话,这是一个)。您的
set
的Gnuplot语法与Python中的意思不匹配,所以这就是为什么它会给您一个语法错误

将三重引号移到Gnuplot脚本的末尾可以解决问题。但是,有一个更简单的解决方案

更好的方法 您不应该将Gnuplot代码直接放入Python脚本中,而是应该从另一个文件(该文件完全是Gnuplot代码)读入脚本,并以这种方式处理它

因此,保留一个只包含Gnuplot代码的文件(例如,
plot.script
):

然后在Python中与此文件交互,如下所示:

plot\u script=open(“plot.script”,“r”).read()
最终结果
plot\u脚本
包含完全相同的数据,每个文件包含一种语言特有的代码,您的代码可读性更高。

好的,从您刚刚更新的代码来看,您的问题很清楚

怎么了(快速回答) 您正在将Gnuplot脚本作为字符串包含到Python源代码中。
标记表示字符串的开始和结束。问题是您使用以下行终止字符串:

#set style data boxes"""
同样,这个三重引号语法标志着Gnuplot字符串的结束,因此下面应该是Python代码。现在,
set
的意思与Python完全不同(如果您好奇的话,这是一个很好的例子)。
set
的Gnuplot语法与Python中的含义不匹配,因此这就是它给您带来语法错误的原因

将三重引号移到Gnuplot脚本的末尾可以解决这个问题然而,有一个更简单的解决方案

更好的方法 您不应该将Gnuplot代码直接放入Python脚本中。相反,您应该从另一个文件(该文件完全是Gnuplot代码)读入脚本,并以这种方式处理它

因此,保留一个只包含Gnuplot代码的文件(例如,
plot.script
):

然后在Python中与此文件交互,如下所示:

plot\u script=open(“plot.script”,“r”).read()
最终结果
plot\u脚本
包含完全相同的数据,每个文件包含一种语言特有的代码,并且您的代码可读性更高。

对于初学者,您使用的代码段不是Python。我对Gnuplot了解不多,但看起来您使用的脚本只是一个标准的Gnuplot脚本。您可能试图将其作为Python脚本调用?另外,给我们一个错误片段也会很有帮助。语法错误如下:set style line 1 lt 1 lc 1 lw 3^SyntaxError:invalid syntaxAh,非常好。为了便于将来参考,您几乎应该始终发布错误/堆栈跟踪,以及相关的代码示例。如果没有它,很难找出你的问题。请参阅我的答案以了解您问题的解决方案。此外,我刚刚编辑了您问题的语法。我将您的代码示例指定为Python。语法突出显示应该向您显示错误。对于初学者,您使用的代码段不是Python。我对Gnuplot了解不多,但看起来您使用的脚本只是一个标准的Gnuplot脚本。您可能试图将其作为Python脚本调用?另外,给我们一个错误片段也会很有帮助。语法错误如下:set style line 1 lt 1 lc 1 lw 3^SyntaxError:invalid syntaxAh,非常好。为了便于将来参考,您几乎应该始终发布错误/堆栈跟踪,以及相关的代码示例。如果没有它,很难找出你的问题。请参阅我的答案以了解您问题的解决方案。此外,我刚刚编辑了您问题的语法。我将您的代码示例指定为Python。语法突出显示应该会显示您的错误。--哇,我真不敢相信我漏掉了那些三重引号!我甚至注释掉了这一行,并计划将其移动到字符串的末尾。我不太擅长Python,对gnuplot知之甚少。非常感谢您的帮助!现在我必须弄清楚如何让绘图线以指定的颜色打印。我很高兴能帮上忙。如果这个答案解决了你的问题,我建议你