public static void PlotInitialGeometry(IAssembly assembly) { GnuPlot.Set("terminal png size 1920, 1080"); GnuPlot.Set("output 'gnuplot.png'"); GnuPlot.HoldOn(); GnuPlot.Set("size ratio -1"); GnuPlot.Unset("key"); double[] X, Y; List <StoredPlot> storedPlots = new List <StoredPlot>(); //List<double> X = new List<double>(); //List<double> Y = new List<double>(); foreach (var element in assembly.ElementsAssembly) { int numberOfNodes = element.Value.Nodes.Count; for (int i = 1; i <= numberOfNodes; i++) { if (i != numberOfNodes) { //X.Add(element.Value.Nodes[i].XCoordinate); //X.Add(element.Value.Nodes[i+1].XCoordinate); //Y.Add(element.Value.Nodes[i].YCoordinate); //Y.Add(element.Value.Nodes[i + 1].YCoordinate); X = new double[] { element.Value.Nodes[i].XCoordinate, element.Value.Nodes[i + 1].XCoordinate }; Y = new double[] { element.Value.Nodes[i].YCoordinate, element.Value.Nodes[i + 1].YCoordinate }; } else { //X.Add(element.Value.Nodes[i].XCoordinate); //X.Add(element.Value.Nodes[ 1].XCoordinate); //Y.Add(element.Value.Nodes[i].YCoordinate); //Y.Add(element.Value.Nodes[ 1].YCoordinate); X = new double[] { element.Value.Nodes[i].XCoordinate, element.Value.Nodes[1].XCoordinate }; Y = new double[] { element.Value.Nodes[i].YCoordinate, element.Value.Nodes[1].YCoordinate }; } if (element.Value is ContactNtN2D) { storedPlots.Add(new StoredPlot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"red\"")); //GnuPlot.Plot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"blue\""); } else if (element.Value is ContactNtS2D) { storedPlots.Add(new StoredPlot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"red\"")); } else { storedPlots.Add(new StoredPlot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"blue\"")); //GnuPlot.Plot(X, Y, "with linespoints pt " + (int)PointStyles.SolidCircle + " lt rgb \"blue\""); } } } GnuPlot.Plot(storedPlots); GnuPlot.HoldOff(); //GnuPlot.Close(); //GnuPlot.KillProcess(); }
public static void PlotHeatMap(List <HeatMapData> plots) { GnuPlot.HoldOn(); GnuPlot.Set("cbrange[0:7.0]"); GnuPlot.Set("palette defined(0 \"blue\", 0.33\"green\", 0.67\"yellow\", 1 \"red\")"); GnuPlot.Set("pm3d"); GnuPlot.Set("dgrid3d"); GnuPlot.Set("view map"); foreach (var plot in plots) { GnuPlot.SPlot(plot.Xcoordinates, plot.Ycoordinates, plot.Temperatures); } }