Thank you guys. I separated the process and it worked perfectly.
First it generate the vector:
void promediation::rateEffect(){
int num = 512;
int freq = 60;
QString label_t = prom->label_2->text();
double amplitude = (100-label_t.toDouble())/2;// interference adjust
double sine = freq*2.0*M_PI;
double r = 0;
QSharedPointer<QCPGraphDataContainer > graphData = prom->customPlot_3->graph(0)->data();
const double time = std::max_element(graphData->begin(),graphData->end(),
[](const QCPGraphData& a, const QCPGraphData& b)->bool{return a.key<b.key;})->key;
double timewindow = time/num;
QVector<double> x(num), y(num), y_final(num);
for (int i=0; i<x.size(); ++i)
{
r = QRandomGenerator::global()->bounded(-100,100); //create a noise
x[i] = i*timewindow; // 0.0208 to show 512 points in 10.66 msec
double time = x[i]/1000;//time in (msec)
y[i] = amplitude*qSin(sine*(time)+r/1000);// Y = Amplitude*Sin(Frequency*2*Pi*time + phase)*ajust
}
for (int i=0; i<x.size(); ++i)
{
y_final[i] = y[i]+plot3Data->at(i)->value;
}
}
And the doubleSpinBox set the values to be plotted
void promediation::StimRate(){
int num = 700;// max rate 70 Hz
auto plot6 = prom->customPlot_6;
auto plotkey6 = plot6->graph(0)->data();
double taxa = round(prom->doubleSpinBox->value()*1000.0)/1000.0;
QString label_t = prom->label_2->text();
double taxa_v = label_t.toDouble();
QVector<double> x(num), y(num);
for (int i=0; i<x.size(); ++i)
{
x[i] = taxa;
y[i] = i*0.00142;
}
const int PEN_WIDTH = 2;
plot6->addGraph();
plot6->graph(1)->setData(x,y);
QPen iPen;
iPen.setWidth(100);
plot6->graph(1)->setPen(QPen(iPen));
if (taxa_v >= 90){
plot6->graph(1)->setPen(QPen(QColor(0,128,0), PEN_WIDTH));
}
if (taxa_v >= 80 and taxa_v < 90){
plot6->graph(1)->setPen(QPen(QColor(87,122,15), PEN_WIDTH));
}
if (taxa_v >= 70 and taxa_v < 80){
plot6->graph(1)->setPen(QPen(QColor(30,80,180), PEN_WIDTH));
}
if (taxa_v >= 50 and taxa_v < 70){
plot6->graph(1)->setPen(QPen(QColor(10,10,10), PEN_WIDTH));
}
if (taxa_v >= 20 and taxa_v < 50){
plot6->graph(1)->setPen(QPen(QColor(200,120,0), PEN_WIDTH));
}
if (taxa_v < 20){
plot6->graph(1)->setPen(QPen(QColor(255,0,0), PEN_WIDTH));
}
plot6->rescaleAxes();
plot6->replot();
}