I am trying to create three stacked graphs, and while they appear ok, when I try to add data only the top graph plots and rescales the X axis

void MainWindow::setupGraph()
 {
    QCustomPlot* mainPlot = ui->graphWidgit;
    mainPlot->clearGraphs();
    mainPlot->clearItems();
    mainPlot->clearPlottables();
    QCPAxisRect *voltPlot = new QCPAxisRect(mainPlot);
    QCPAxisRect *temperaturePlot = new QCPAxisRect(mainPlot);
    QCPAxisRect *currentPlot = new QCPAxisRect(mainPlot);

    mainPlot->plotLayout()->clear();
    mainPlot->plotLayout()->addElement(0, 0, voltPlot);
    mainPlot->plotLayout()->addElement(1, 0, temperaturePlot);
    mainPlot->plotLayout()->addElement(2, 0, currentPlot);

    QString voltName("Votage ");
    voltAxis = voltPlot->addAxis(QCPAxis::atLeft);
    QPen redPen(Qt::red);
    voltAxis->setBasePen(redPen);
    voltAxis->setVisible(true);
    QString currentName("Current ");
    currentAxis = currentPlot->addAxis(QCPAxis::atLeft);
    QPen bluePen(Qt::blue);
    currentAxis->setBasePen(bluePen);
    currentAxis->setVisible(true);
    QString tempName("Internal Temp ");
    tempAxis = temperaturePlot->addAxis(QCPAxis::atLeft);
    QPen greenPen(Qt::darkGreen);
    tempAxis->setVisible(true);
    foreach(QCPAxisRect *rect, mainPlot->axisRects())
    {
        foreach(QCPAxis *axis, rect->axes())
        {
            axis->setLayer("axes");
            axis->grid()->setLayer("grid");
        }
    }

    voltGraph = mainPlot->addGraph(mainPlot->xAxis, voltAxis);
    currentGraph = mainPlot->addGraph(mainPlot->xAxis, currentAxis);
    tempGraph = mainPlot->addGraph(mainPlot->xAxis, tempAxis);
    voltGraph->setName(voltName);
    voltGraph->setPen(redPen);
    currentGraph->setName(currentName);
    currentGraph->setPen(bluePen);
    tempGraph->setName(tempName);
    tempGraph->setPen(greenPen);
}

void MainWindow::displayPoint(DElement point) 
{
QPointF voltPoint;
voltPoint.setX(point.time);
voltPoint.setY(point.volts);
voltGraph->addData(voltPoint.x(), voltPoint.y());
QPointF currentPoint;
currentPoint.setX(point.time);
currentPoint.setY(point.current);
currentGraph->addData(currentPoint.x(), currentPoint.y());
QPointF tempPoint;
tempPoint.setX(point.time);
tempPoint.setY(point.temperature);
tempGraph->addData(tempPoint);

ui->graphWidgit->xAxis->rescale();
ui->graphWidgit->replot(QCustomPlot::rpQueuedReplot);
}