2

QCustomPlot は初めてですが、TickStep のカスタム サイズを作成できません。

今、私はこのプロットを持っています (時間は別の日の 6:00 から 6:00 です)。

ここに画像の説明を入力

そして、私の希望するX軸ラベルは何ですか:

ここに画像の説明を入力

setTickStep で遊んでみましたが、成功しませんでした。

    QVector<double> x(96), y(96); 

     for (int i=0; i<95; ++i)
     {
       x[i] = i*900+22500;
       y[i] = someValues loaded from db 

     }

     ui->customPlot->addGraph();

     ui->customPlot->setBackground(QBrush(QColor(239, 239, 239, 255)));
     ui->customPlot->graph(0)->setData(x, y);

     ui->customPlot->xAxis->setRange(21600, 108000);
     ui->customPlot->xAxis->setTickLabelType(QCPAxis::ltDateTime);
     ui->customPlot->xAxis->setDateTimeFormat("h:mm");

     //ui->customPlot->xAxis->setTickStep(7200);
4

1 に答える 1

2

カスタム ティック ステップを設定する前に、1 つのことを見逃していました。自動ティック ステップと呼ばれる機能は、軸でデフォルトで有効になっているため、最初に無効にする必要があります。

QVector<double> x(96), y(96);

for (int i=0; i<95; ++i)
{
  x[i] = i*900+22500;
  y[i] = i;  // some values not from database
}
ui->customPlot->addGraph();
ui->customPlot->setBackground(QBrush(QColor(239, 239, 239, 255)));
ui->customPlot->graph(0)->setData(x, y);

ui->customPlot->xAxis->setRange(21600, 108000);
ui->customPlot->xAxis->setTickLabelType(QCPAxis::ltDateTime);
ui->customPlot->xAxis->setDateTimeFormat("h:mm");

ui->customPlot->xAxis->setAutoTickStep(false);   // <-- disable to use your own value

ui->customPlot->xAxis->setTickStep(7200);

追加行がある場合とない場合の結果:

ここに画像の説明を入力

于 2015-09-13T23:07:15.250 に答える