2016-11-14 1 views
0

Я хочу нарисовать остаток между двумя функциями в дискретных точках с qcustomplot.QCustomPlot извлекает остатки между двумя функциями

Я знаю положение (x), начальное значение y.at (x) и height.at (x).

то, что я до сих пор является бар ошибка у + -ошибка:

QCPErrorBars *errorBars = new QCPErrorBars(customPlot->xAxis, customPlot->yAxis); 
errorBars->setDataPlottable(customPlot->graph(0)); 
QVector<double> y1err(x.size()); 
for (int i = 0; i<x.size(); ++i) 
{ 
    y1err[i] = y.at(i) * error; 
} 
customPlot->graph(0)->setData(QVector<double>::fromStdVector(x), QVector<double>::fromStdVector(y)); 
errorBars->setData(y1err); 

или бар, начиная с нуля:

QCPBars *newBars = new QCPBars(customPlot->xAxis, customPlot->yAxis); 
std::vector<double> xData, yData; 
for (auto i = 0; i < x.size(); ++i) 
{ 
    xData.push_back(i+1); 
    yData.push_back(y.at(i)); 
} 
newBars->setData(QVector<double>::fromStdVector(x), QVector<double>::fromStdVector(y)); 

но то, что я действительно хочу это своего рода сюжет начиная с значения y.at (x) с высотой остатка в точке x в дополнение к двум графикам xy. Как я могу построить панель или панель ошибок, начиная с y.at (x) с помощью height.at (x)?

Спасибо

ответ

0

Для других людей, которые сталкиваются с этой проблемой я нашел какое-то решения.

void QLinePlot::AddResiduumData(std::vector<double> x, std::vector<double> y_mid, std::vector<double> y_res) 
{ 
customPlot->addGraph(); 
++graphCountI; 

QCPErrorBars *errorBars = new QCPErrorBars(customPlot->xAxis, customPlot->yAxis); 
errorBars->setDataPlottable(customPlot->graph(graphCountI - 1)); 
customPlot->graph(graphCountI - 1)->setData(QVector<double>::fromStdVector(x), QVector<double>::fromStdVector(y_mid)); 
customPlot->graph(graphCountI - 1)->setVisible(false); 
errorBars->setData(QVector<double>::fromStdVector(y_res)); 
customPlot->replot(); 
} 

Идея заключается в добавлении нового невидимого графика между обеими участками и дает ошибку в половине расстояния между обеими.

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