私は QwtPlot に取り組んでいます - X 軸には通常の時間スケールがあり、離散値を持つカスタム y スケールがあります
問題は、拡大鏡を使用して個別の Axis (主要な目盛りのみがある) をズームしているときに、スケールの目盛りが繰り返され始め、たとえば 2 つの目盛り "0" と "1" を取得する代わりに、4 を取得していることです。ティック "0"、"0"、"1"、"1" (またはそれ以上、ズームに依存)。したがって、除算器は値を分割できないため、値を繰り返すだけです。
スケールが追加の分割の描画を停止するために使用/再実装する関数またはオブジェクトがわかりません(ところで、追加のグリッド線も)。拡大鏡を拡大しすぎないようにするだけでは、もっと拡大したいので正解ではありません。
離散 y 軸 (QwtPlot を継承する CPlot) に対して行ったことは次のとおりです。
QList<double> ticks; for(int i=0; i<visualisation->getPIDs().size();i++) { ticks.append(i); } QwtScaleDiv* div=new QwtScaleDiv(0,visualisation->getPIDs().size()-1); div->setTicks(QwtScaleDiv::MajorTick, ticks); discreteScale=new CDiscreteScaleDraw; discreteScale->setLUT(visualisation->getPIDs()); setAxisScaleDraw(QwtPlot::yLeft, discreteScale); setAxisMaxMinor(QwtPlot::yLeft,0); this->setAxisAutoScale(QwtPlot::yLeft, 0);
PS。私のタイムスケールでは同様の問題がありますが、これは精度の場合です-ズームインすると、123,456.789の精度が得られ、123,456.78になります(その後、ラベルが2倍、3倍になります)。また、123456.789 になるように QwtScaleDraw が配置するコマを削除したいと思いますが、最も重要なことはラベルの繰り返しを取り除くことです。