C#GNUPlot 2使用显式选项的图形合一

本文关键字:选项 图形 合一 C#GNUPlot | 更新日期: 2023-09-27 18:21:16

我试图实现的是由函数定义一个3D图,最重要的是由坐标定义一组点。为了绘制3D图形,我使用pm3d选项,该选项不能用于绘制单个点,但我发现通过使用"显式"选项,应该可以将更多类型的图形组合为一个。所以我试着做:

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

我不知道"带线条"是从哪里来的。

我不知道的第二件事是如何将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)

不知怎么的?

谢谢你的回答。。。

C#GNUPlot 2使用显式选项的图形合一

您必须使用

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");