я использую QCustomPlot
, на Qt, чтобы изобразить аспекты видеопоследовательности.
Я хотел бы определить фон моего графика, чтобы определить конкретные зоны вдоль моего yAxis
,
Мой график такой:
И я хотел бы определить интервалы в моем yAxis
чтобы получить что-то вроде этого:
Последнее изображение принадлежит программе под названием PEAT, используемой для анализа видео, которое может вызвать приступы эпилепсии. Я указываю на то, как они определяют зоны вдоль yAxis
,
Какие-либо предложения?
Чтобы иметь область на графике, вы можете добавить два графика, которые определяют границы области:
//Upper bound
customPlot->addGraph();
QPen pen;
pen.setStyle(Qt::DotLine);
pen.setWidth(1);
pen.setColor(QColor(180,180,180));
customPlot->graph(0)->setName("Pass Band");
customPlot->graph(0)->setPen(pen);
customPlot->graph(0)->setBrush(QBrush(QColor(255,50,30,20)));
//Lower bound
customPlot->addGraph();
customPlot->legend->removeItem(customPlot->legend->itemCount()-1); // don't show two Band graphs in legend
customPlot->graph(1)->setPen(pen);
Далее вы можете заполнить область между границами, используя setChannelFillGraph
:
customPlot->graph(0)->setChannelFillGraph(customPlot->graph(1));
Также не забудьте назначить соответствующие значения для границ:
QVector<double> x(250);
QVector<double> y0(250), y1(250);
for (int i=0; i<250; ++i)
{
x[i] = i ;
y0[i] = upperValue;
y1[i] = lowerValue;
}
customPlot->graph(0)->setData(x, y0);
customPlot->graph(1)->setData(x, y1);
Вы также можете добавить другие графики, чтобы показать некоторые границы, такие как в вашем примере.