找回密码
 立即注册
收起左侧

QCustomplot Y轴单位怎么变化

1
回复
1487
查看
[复制链接]
累计签到:18 天
连续签到:1 天
来源: 2022-7-15 14:15:18 显示全部楼层 |阅读模式
10Qter豆
我使用QCustomplot画曲线,Y轴的变化范围有点大,怎么设置改变单位?

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

求大佬指点

回复

使用道具 举报

累计签到:10 天
连续签到:1 天
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[i] = 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)"));
    }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了