Използвам AreaSeries
от OxyPlot
за начертаване на вертикала AreaSeries
.
Прилагам метод, който изгражда от списък с различен цвят AreaSeries
. Ето кода:
private static void AddTriggerAreaSeries(PlotModel plotModel, int initialPoint, int endingPoint, int index)
{
var seriesArea = new AreaSeries();
seriesArea.Title = "Instruction";
seriesArea.Color = OxyColors.Transparent;
seriesArea.Fill = TriggerColorList[index];
//Draws vertically from bottom to top (0 -> 20)
//j referes to the second axis, the y axis in this case (vertical axis)
//The initial and ending points represent interval limits in which the area series is drawn
for (var j = 0; j < 20; j++)
{
seriesArea.Points.Add(new DataPoint(initalPoint, j));
}
for (var j = 0; j < 20; j++)
{
seriesArea.Points.Add(new DataPoint(endingPoint, j));
}
plotModel.Series.Add(seriesArea);
}
Кодът работи за vertical series
. Въпреки това, когато се опитам да начертая същото нещо хоризонтално, то няма да се начертае от интервал, който давам.
Ето примерен код, който използвам, за да начертая AreaSeries horizontally
:
// Basically same code that I used but calling seriesArea.Points.Add(new DataPoint(x, y)) reversed, such that the line goes in the x direction
for (var j = 0; j < 20; j++)
{
seriesArea.Points.Add(new DataPoint(j, initalPoint));
}
for (var j = 0; j < 20; j++)
{
seriesArea.Points.Add(new DataPoint(j, endingPoint));
}
plotModel.Series.Add(seriesArea);
Ето снимка на резултата от този код. В този пример initialPoint=1
и endingPoint=2
. Опитвам се да начертая interval [1,2]
, вместо това само то черпи от interval [0,1]
и за крайната точка рисува само линия: