2014-09-02 7 views
3

Я использую QCustomPlot, на Qt, чтобы рассказать о аспектах видеопоследовательности.Qt - Как определить интервалы осей на QCustomPlot?

Я хотел бы определить фон моего графика, чтобы определить конкретные зоны вдоль моего yAxis. Мой график таков:

My plot (example)

И я хотел бы определить интервалы в моем yAxis, чтобы получить что-то вроде этого:

enter image description here

Последнее изображение принадлежит программе под названием ТОРФ, используется для анализа видеороликов, которые могут вызывать эпилептические припадки. Я указываю, как они определяют зоны вдоль yAxis.

Любые предложения?

ответ

5

Чтобы иметь область на графике, вы можете добавить два графика, которые определяют границы региона:

//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); 

Вы также можете добавить другие графики, чтобы показать некоторые границы, например, в вашем примере.

+0

Благодарим вас за ответ, ваше предложение решает мою проблему. Но я не могу показать текст «Pass Band» на графике графика, любая идея, почему это происходит? – NelsonR

+1

@NelsonR В легенде приведенное имя указывается. Чтобы показать текст на графике, вы должны использовать 'QCPItemText'. Для примера см. Http://www.qcustomplot.com/index.php/tutorials/items – Nejat

+0

Спасибо за вашу помощь, пример, который вы предложили, работал отлично. – NelsonR

Смежные вопросы