Я использую 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]
, а для конечной точки рисует только линию: