ai410257573 发表于 2022-7-15 14:15:18

QCustomplot Y轴单位怎么变化

我使用QCustomplot画曲线,Y轴的变化范围有点大,怎么设置改变单位?

比如Y轴的值是1000以下,则是uA,而在1000-1000000,则显示mA,但是Y轴的刻度还是显示的是1-1000,在m**别的时候,接收uA的数据显示时,曲线的值的落点是在0-1mA的范围内

求大佬指点

qtxxxx 发表于 2023-8-25 20:15:48

这样应该能满足需求,应该会有更好的方法,程序可以再优化一下,根据对应的需求
QVector<double> xVal;
QVector<double> yVal;
void GetData(double value)
{
    static double maxVal = 0;
    static int flag = 0;
    if(value > maxVal)
    {
      maxVal = value;
    }
    if(maxVal <= 1000)
    {
      xVal.append(x);
      yVal.append(value);
      ui->customplot->graph(0)->addData(x,value);
      ui->customplot->yAxis->setLabel(tr("信号(uA)"));
    }
    else if(maxVal > 1000)
    {
      if(flag == 0)//首次有大于1000的值时,对之前的值进行缩小1000倍处理,并重新添加
      {
            ui->customplot->graph(0)->data().data()->clear();
            for(int i=0;i<xVal.size();i++)
            {
                yVal = yVal.at(i) / 1000;
            }
            ui->customplot->graph(0)->addData(xVal,yVal);
            flag = 1;
      }
      ui->customplot->graph(0)->addData(x,value/1000);
      ui->customplot->yAxis->setLabel(tr("信号(mA)"));
    }
}
页: [1]
查看完整版本: QCustomplot Y轴单位怎么变化