我正在研究 QwtPlot - 我在 X 轴上有一个常规时间刻度和一个带有离散值的自定义 y 刻度
问题是,当我用放大镜缩放离散轴(它只有主要刻度)时,刻度上的刻度开始重复自己,而不是得到例如 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(然后标签再次增加一倍、三倍等)。我还想删除 QwtScaleDraw 放在那里的昏迷,这样我就可以得到 123456.789,但最重要的是摆脱重复标签。