Я прошу прощения за то, что задал так много вопросов по OxyPlot, но мне кажется, что я действительно испытываю трудности с использованием элемента управления диаграммой OxyPlot.
Мой проект находится в формате WPF, поэтому я изначально использовал размещенную диаграмму WINFORMS, которая работала как шарм и делал абсолютно все, что мне было нужно, пока мне не нужно было наложить элемент WPF поверх размещенной диаграммы winform. Из-за проблемы с «AirSpace» я не мог видеть элемент WPF, который я поместил поверх размещенной диаграммы, что бы я ни делал. Именно тогда я решил использовать OxyPlot, который пока доставляет мне немало головной боли.
Вот мой исходный вопрос! что я спросил в CodePlex. Кажется, мне там особо не помогают, поэтому я пытаюсь снова здесь.
У меня вопрос:
Кто-нибудь знает, как нанести НЕСКОЛЬКО LineSeries на участок ??
Мой подход до сих пор:
Я беру массив C # List и добавляю новую копию LineSeries, которая содержит новые данные для построения графика. Мой код:
// 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);
}
Мой код работает, когда я в первый раз нажимаю кнопку «Данные графика», но при последующих попытках не работает со следующей ошибкой:
Элемент не может быть добавлен, он уже принадлежит к модели участка
Следующий график - это тип графика, который я хотел бы создать (он отлично работал с элементом управления WinForms Chart):
Я хочу, чтобы при каждом запуске метода отображалась новая линия с новым цветом.