Wie Grundstück MEHRERE LineSeries auf eine OxyPlot Diagramm?

Ich entschuldige mich für die Fragen, so viele OxyPlot Fragen, aber ich scheine wirklich zu kämpfen mit der OxyPlot chart-Steuerelement.

Mein Projekt in WPF-format, so dass ich ursprünglich mit einem hosted WINFORMS-Diagramm und das funktionierte wie ein Charme und hat absolut alles, was ich brauchte es, bis ich brauchte, um overlay ein WPF-element auf der Oberseite des gehosteten winform-Diagramm. Durch den "Luftraum" - Ausgabe, ich war nicht in der Lage, um zu sehen, das WPF-element, das ich auf der Oberseite des hosted-chart, egal was ich Tat. Das ist, wenn ich beschlossen zu gehen mit OxyPlot, das ist mir schon ein paar Kopfschmerzen ist so weit.

Hier ist mein ursprüngliche Frage! dass ich gefragt habe über bei CodePlex. Ich weiß nicht zu sein scheinen immer viel Hilfe dort, so dass ich versucht bin, nochmal hier.

Meine Frage ist:

Weiß jemand, wie man plot MEHRERE LineSeries auf ein Grundstück??

Mein Ansatz bisher:

Ich nehme ein c# array-Liste und das hinzufügen einer neuen Kopie der LineSeries hält, dass neue Daten erfasst werden. Mein code:

    //Function to plot data
    private void plotData(double numWeeks, double startingSS)
    {

        //Initialize new Salt Split class for acess to data variables
        Salt_Split_Builder calcSS = new Salt_Split_Builder();
        calcSS.compute(numWeeks, startingSS, maxDegSS);

        //Create the OxyPlot graph for Salt Split
        OxyPlot.Wpf.PlotView plot = new OxyPlot.Wpf.PlotView();

        var model = new PlotModel();

        //Add Chart Title
        model.Title = "Salt Split Degradation";

        //Create new Line Series
        LineSeries linePoints = new LineSeries() { StrokeThickness = 1, MarkerSize = 1, Title = numWeeks.ToString() + " weeks" };


        //Add each point to the new series
        foreach (var point in calcSS.saltSplitCurve)
        {
            DataPoint XYpoint = new DataPoint();
            XYpoint = new DataPoint(point.Key, point.Value * 100);
            linePoints.Format("%", XYpoint.Y);
            linePoints.Points.Add(XYpoint);
        }

        listPointAray.Add(linePoints);


        //Define X-Axis
        var Xaxis = new OxyPlot.Axes.LinearAxis();
        Xaxis.Maximum = numWeeks;
        Xaxis.Minimum = 0;
        Xaxis.Position = OxyPlot.Axes.AxisPosition.Bottom;
        Xaxis.Title = "Number of Weeks";
        model.Axes.Add(Xaxis);

        //Define Y-Axis
        var Yaxis = new OxyPlot.Axes.LinearAxis();
        Yaxis.MajorStep = 15;
        Yaxis.Maximum = calcSS.saltSplitCurve.Last().Value * 100;
        Yaxis.MaximumPadding = 0;
        Yaxis.Minimum = 0;
        Yaxis.MinimumPadding = 0;
        Yaxis.MinorStep = 5;
        Yaxis.Title = "Percent Degradation";
        model.Axes.Add(Yaxis);

        //Add Each series to the
        foreach (var series in listPointAray)
        {
            LineSeries newpoints = new LineSeries();
            newpoints = linePoints;
            model.Series.Add(newpoints);
        }


        //Add the plot to the window
        plot.Model = model;
        SaltSplitChartGrid.Children.Add(plot);

    }

``

Mein code funktioniert die erste Zeit drücke ich mein "Graph" Taste zu drücken, scheitert aber an aufeinander folgenden versucht, mit der folgenden Fehlermeldung:

Das element kann nicht Hinzugefügt werden, es gehört schon ein Plot-Modell

Den folgenden plot ist die Art von plot, die ich hervorbringen möchte (es geklappt hat mit WinForms-Steuerelement):

Bild http://i59.tinypic.com/jqs3n9.jpg

Möchte ich eine neue Zeile mit einer neuen Farbe gezeichnet werden jedes mal, wenn ich die Methode ausgeführt.

  • mögliche Duplikate von Mehrere LineSeries-Bindung in OxyPlot
  • Es ist nicht ein exaktes Duplikat als mein Ansatz war etwas anders. Ich war nicht mit Datenbindung, aber ich wahrscheinlich sein sollte, so werde ich diesen Ansatz auch.
InformationsquelleAutor John August | 2014-07-24
Schreibe einen Kommentar