C# GNUPlot 2 个图形合二为一使用显式选项

C# GNUPlot 2 graphs in one using explicit option

我想要实现的是拥有一个由函数定义的 3D 图形,最重要的是,一组点由它们的坐标定义。 要绘制 3D 图形,我使用 pm3d 选项,它不能用于绘制单个点,但我发现应该可以通过使用 "explicit" 选项将更多类型的图形组合成一个。所以我尝试这样做:

GnuPlot.Set("pm3d explicit");
GnuPlot.Set("isosamples 80");
GnuPlot.Set("autoscale");
GnuPlot.Unset("surface");
GnuPlot.Set("contour base");
GnuPlot.SPlot("x**2 + y**2 with pm3d");

但我只得到错误:

gnuplot> splot x**2 + y**2 with pm3d with lines
                                     ^
         line 0: duplicated or contradicting arguments in plot options

哪里不知道"with lines"从哪里来的。

我不知道的第二件事是如何将点集与 SPlot 中的函数文本结合起来 - 使用

可以很容易地单独完成这些事情
public static void SPlot(double[] x, double[] y, double[] z, string options = "")
public static void SPlot(string filenameOrFunction, string options = "")

但是一起......有没有办法为此目的将点数组写成字符串,或者我应该使用

public static void Plot(List<StoredPlot> storedPlots)

不知何故?

感谢您的回答...

你必须使用

GnuPlot.SPlot("x**2 + y**2", "with pm3d");

绘图选项必须在第二个参数中给出,否则将附加默认值,即 with lines

要绘制一个函数和一组点,以下应该可行:

GnuPlot.HoldOn();
GnuPlot.SPlot(" x**2 + y**2", "with pm3d");
GnuPlot.SPlot(x, y, z, "with points");