我很抱歉问了这么多 OxyPlot 问题,但我似乎真的很难使用 OxyPlot 图表控件。
我的项目是 WPF 格式,所以我最初使用的是托管 WINFORMS 图表,它就像一个魅力,并且完全完成了我需要的一切,直到我需要在托管的 Winform 图表上覆盖一个 WPF 元素。由于“AirSpace”问题,无论我做什么,我都无法看到放在托管图表顶部的 WPF 元素。那是我决定使用 OxyPlot 的时候,到目前为止这让我很头疼。
这是我的原始问题!我在 CodePlex 上问过的。我在那里似乎没有得到太多帮助,所以我在这里再试一次。
我的问题是:
有谁知道如何将 MULTIPLE LineSeries 绘制到 Plot 上?
到目前为止我的方法:
我正在使用 ac# 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 控件可以正常工作):
每次运行该方法时,我都希望绘制一条带有新颜色的新行。