Qwt X轴对数坐标实现坐标拾取

基于qwt3D 的3D航迹图的实现 前言 使用qt实现三维空间直角坐标系中的航迹实时绘制网上很难查到资料。在qt下实现3D绘图通常实现方式有OpenGL,VTK,qwt3d,QtDataVisualization等,Qcharts,QCustomPlot只支持2D绘图。 这里给出笔者基于QcustomPlot封装的实时曲线图和二维航迹图。 对于3D实时航迹的绘制,在QtDataVisualization下并没有找到类似的例子,而使用... 阅读详情

看了尘中远大神的帖子,

https://blog.youkuaiyun.com/czyt1988/article/details/51555020

把我之前做的x轴是对数坐标的代码拿出来改了哈。之前看过qtcharts 的 demo CallOut,对数坐标里实现不了。

QwtPlot *poPlot = new QwtPlot;

    /* Set Log Scale */
    poPlot->setAxisScaleEngine( QwtPlot::xBottom, new QwtLogScaleEngine() );
    poPlot->setAxisScaleEngine( QwtPlot::yLeft,   new QwtLogScaleEngine() );

    poPlot->enableAxis(QwtPlot::xBottom , true);
    poPlot->enableAxis(QwtPlot::yLeft   , true);


    (void) new SAXYDataTracker(poPlot->canvas());

    QList<double> adF;

    adF = {0.06125, 0.125,0.25,0.5,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192};

    qSort(adF);

    /* Fill ticks */
    QList<double> adTicks[QwtScaleDiv::NTickTypes];
    adTicks[QwtScaleDiv::MajorTick] = adF;
    QwtScaleDiv oScaleDiv( adTicks[QwtScaleDiv::MajorTick].last(),
            adTicks[QwtScaleDiv::MajorTick].first(),
            adTicks );

    poPlot->setAxisScaleDiv( QwtPlot::xBottom, oScaleDiv );


    /* Curve title, cut MCSD_ & suffix*/
    const QwtText oTxtTitle( "test" );

    /* Create a curve pointer */
    QwtPlotCurve *poCurve = NULL;
    poCurve = new QwtPlotCurve( oTxtTitle );

    poCurve->setPen( Qt::black, 2, Qt::SolidLine );
    poCurve->setRenderHint( QwtPlotItem::RenderAntialiased, true );

    QwtSymbol *poSymbol = new QwtSymbol( QwtSymbol::Ellipse,
                                         QBrush( Qt::yellow ),
                                         QPen( Qt::blue, 2 ),
                                         QSize( 8, 8 ) );
    poCurve->setSymbol( poSymbol );
    poCurve->setStyle(QwtPlotCurve::Lines);

    QPolygonF aoPointF;
    aoPointF.clear();

    for(int i = 0 ; i < adF.count();i++)
    {
        QPointF oPoinF;

        oPoinF.setX(adF.at(i));
        oPoinF.setY(pow(adF.at(i),3.14));

        aoPointF.append(oPoinF);
    }

    poCurve->setSamples( aoPointF );
    poCurve->setAxes(QwtPlot::xBottom, QwtPlot::yLeft);
    poCurve->attach(poPlot);
    poCurve->setVisible( true );

    this->setCentralWidget(poPlot);

得到的效果:

Qwt QwtScaleDraw自定义坐标轴 QwtScaleDraw 是 Qt 绘图库 Qwt 中的一个类,用于绘制坐标轴刻度线和刻度标签。它提供了一些方法和属性来设置刻度线和标签的样式、布局和对齐方式。 阅读详情

相关推荐

qt使用对数坐标显示曲线的例子

在某些情况下,我们用qchart显示曲线的时候,线性坐标没法帮我们更直观的分析数据,比如曲线中有少部分数据值很大在1000左右,然后绝大部分值都很小,在10以内,然后y坐标范围是0到1000的话,那么我们看到的曲线会都坨在底部,无法直观查看10以内的数据,这时候用对数坐标就比较合适。1.初始化QChart,初始化QChartView 2.通过QChartView::setChart(QChart *chart)来设置QChart,3.初始化QLogValueAxis作为纵坐标并设置坐标轴范围,初始化QValueAxis作为横坐标并设置坐标轴范围,4.通过QChart::addAxis(QAbstractAxis *axis, Qt::Alignment alignment)将2个坐标轴添加到QChart中,5.初始化曲线QLineSeries,并将数据塞进曲线中,6.通过QChart::addSeries(QAbstractSeries *series)将曲线放进QChart中,7.通过QAbstractSeries::attachAxis(QAbstractAxis *axis)

QWT 对坐标轴缩放拖动

https://forum.qt.io/topic/54848/qwtplot-zooming-logarithmic-scale/2 zoscHello, i have a QwtPlot with a logarithmic scale on y and time scale on x. That was not the problem, but zooming into the graph....

... 1823

mysql数据目录迁移后表不存在_mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法...

补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题。背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机,唉,悲剧了,于是重新安装了系统 windows server 2008 enterprise 32bit。详情:系统安装完成后,重新配置之前那个网站,appache服务配好之后,再配置数据的时候是这样...

weixin_39628271的博客 2671

pyecharts 显示坐标轴线_实战PyQt5: 153-QChart图表之对数坐标轴

一些成指数变化的数据,在图表中需要使用对数坐标轴显示。QChart提供列QLogValueAxis来实现对数坐标轴。QLogValueAxisQLogValueAxis类将对数刻度添加到图表的坐标轴。对数刻度是基于数量级的非线性刻度,因此轴上的每个刻度线都是前一个刻度线乘以一个值。注意: 如果图表序列中的有小于或等于0的值,则不会绘制该图表序列。 QLogValueAxis常用函数:setBase...

weixin_39972741的博客 1383

Python介绍与安装

Python介绍与安装

acegi13579的专栏 3218

Mem0 vs LangMem vs Letta:三大AI记忆框架实战对比(附代码示例)

本文深入对比了Mem0、LangMem和Letta三大AI记忆框架的核心特性与适用场景。Mem0提供开箱即用的记忆管理服务,适合快速集成;LangMem深度融入LangGraph生态,适合复杂工作流;Letta则采用虚拟内存系统,旨在突破上下文窗口限制。文章通过实战代码示例,为开发者选择适合其业务需求的AI记忆解决方案提供了清晰指南。

g9h0i1的博客 679

qwt模版例程学习设置相位曲线波形

setAxisScaleEngine( QwtPlot::xBottom, new QwtLogScaleEngine );//!!!!!!!!!!!!!!!!!!

小老鼠的博客 657

LabView实战:精准实现float到十六进制的转换与高低位拆分

本文详细讲解了在LabVIEW中实现单精度浮点数(float)到十六进制字符串转换,并进行高低16位拆分的实战方法。针对工业通信中设备协议要求,核心使用强制类型转换(Type Cast)获取内存原始数据,避免数值转换错误,并提供了完整的VI构建步骤、交叉验证技巧及常见踩坑经验(如字节序、字符串格式),确保数据通信的准确性。

assembly8low的博客 1765

Qwt中鼠标获取坐标点

1 void getPoint(QwtPlot *plot) 2 { 3 QPoint point = plot->canvas()->mapFromGlobal(QCursor::pos()); 4 QString info.sprintf("x = %g, y = %g", 5 plot -&g...

weixin_33713707的博客 1240

深度学习、图像分类入门,从VGG16卷积神经网络开始

刚开始接触深度学习、卷积神经网络的时候非常懵逼,不知道从何入手,我觉得应该有一个进阶的过程,也就是说,理应有一些基本概念作为奠基石,让你有底气去完全理解一个庞大的卷积神经网络: 本文思路: 一、我认为学习卷积神经网络必须知道的几个概念: 1、卷积过程:   我们经常说卷积神经网络卷积神经网络,到底什么才是卷积?网络层卷积过程到底怎么实现?我们在这里借鉴了另一位博客大牛的动态图来给大

Errors_In_Life的博客 16万+

汽车IVI中控开发入门及进阶(九):显示屏

显示屏Display panel和触控屏Touch panel,可以说随着汽车四化的进展,屏越来越多,越来越大,越来越高清,成为IVI中控、智能座舱系统的重要组成部分。比如如下一个电阻触摸屏。正文:显示屏主要功能就是显示,车载内容和信息的传递全靠显示屏,目前车载显示屏的种类可以分为:LCD液晶显示屏(TFT(薄膜晶体管)驱动的有源矩阵液晶显示,再细分IPS、TFT、SLCD,这几个子类)、LED显示屏(用 LED发光二极管作为背光光源)、OLED 显示屏。

码农17年的博客 2525

qwt之获取动态变化x轴和y轴坐标的最大值和最小值

一、新建工程,将qwt基本画图功能配置完毕,开始进行页面布局,如图所示: 二、在值变化按钮中,可以实现每次进行点击x轴的时候,都会获取动态的x轴的最大值和最小值 进行点击转到槽之后x轴部分加入以下代码: void Widget::on_pushButton_clicked() { QwtInterval xtemp = ui->qwtPlot->axisScaleDiv...

Littlehero_121的博客 2832

【数字IC刷题】华为海思数字IC笔试题(3)详细解析版

【数字IC刷题】华为海思数字IC笔试题(3)详细解析版

MoorePlus的博客 2368

Qwt扩展之-数据拾取

在文章之前,首先看看这篇文章要实现的效果: 数据拾取就是在鼠标经过线条时,会捕获一些特征数据,上图是捕获离鼠标最接近的点。Qt的Qwt绘图组件提供了拾取数据的现成的类,同时也留有非常好的接口,用户可以任意扩展,下面就介绍Qwt专门负责拾取数据及鼠标跟踪用的QwtPicker及其子类。并对其扩展,构建一个用于显示鼠标经过图像时捕获最近点的拾取器

尘中远的程序开发记录 1万+

【Android 教程系列第 30 篇】为什么要为 App 应用加固 ?如何为 App 应用加固 ?

一:为什么要为 App 应用加固 ? 二:如何为 App 应用加固 ? 三:加固后为什么要重新签名 ?

“Allen Su”的博客 7053

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Qt绘图第三方库Qwt扩展之-数据拾取

在文章之前,首先看看这篇文章要实现的效果: 数据拾取就是在鼠标经过线条时,会捕获一些特征数据,上图是捕获离鼠标最接近的点。 Qwt提供了拾取数据的现成的类,同时也留有非常好的接口,用户可以任意扩展,下面就介绍Qwt专门负责拾取数据及鼠标跟踪用的QwtPicker及其子类。并对其扩展,构建一个...

chizan3174的博客 1205

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【Qwt 7.0 系列】交互功能详解 —— 平移、缩放、坐标轴交互与数据拾取

本文介绍了Qwt 7.0在数据可视化交互功能上的重大改进。主要内容包括:1)实时平移工具QwtPlotPanner,基于QwtPicker状态机重构,解决了旧版位图缓存平移的视觉延迟问题;2)全新缩放工具QwtPlotCanvasZoomer,无需指定坐标轴即可实现整体画布缩放;3)7.0.5版本新增的坐标轴直接交互功能,支持通过鼠标拖动和滚轮缩放直接操作坐标轴;4)7.0.6版本新增的数据拾取功能QwtPlotSeriesDataPicker。这些改进显著提升了Qwt库的交互体验,使开发者能够更轻松地实现

尘中远的程序开发记录 485

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Qwt中picker(拾取器)显示设置

Qwt中有些时候会用到QwtPlotPicker类来设置绘图中的拾取器,显示当前位置的坐标信息。 若坐标轴的刻度值不是自定义,只需要将picker跟踪模式设置为AlwaysOn picker->setTrackerMode( QwtPicker::AlwaysOn ); 若坐标轴的刻度值是自定义,若将x轴定义为系统时间(分、秒),y轴保持不变,此时显示当前信息,需要继承QwtPlot

lovebird_27的专栏 4912

Qwt中坐标轴的设置

哈哈明天写

lovebird_27的专栏 2万+

Qwt中对于某个轴的缩放操作

Qt中使用Qwt进行canvas的缩放操作是针对整个图形以及坐标轴的缩放操作,如果要进行只对某个轴和图形的缩放思路是关联 zoomer的信号zoomed(QRectF),然后执行槽函数(记录当前坐标轴起点与终点的信息,然后将这个信息设置坐标轴setAxisScale())。      代码如下: connect( zoomer, SIGNAL( zoomed( QRectF ) ),

lovebird_27的专栏 4200

Qwt7.0-打造更美观高效的Qt开源绘图控件库

作者将继续维护Qwt库,增加CMake支持、单一文件整合、UI美化、新增Figure容器等功能优化使用体验。未来计划增加寄生轴、大数据渲染优化等特性,旨在打造一个协议友好、性能优越的Qt绘图库。项目已在GitHub/Gitee开源,欢迎开发者参与改进。

尘中远的程序开发记录 1936

QWT读取MySQL数据并绘制图形_Qwt扩展之-数据拾取(示例代码)

在文章之前,首先看看这篇文章要实现的效果: 数据拾取就是在鼠标经过线条时,会捕获一些特征数据,上图是捕获离鼠标最接近的点。Qwt提供了拾取数据的现成的类,同时也留有非常好的接口,用户可以任意扩展,下面就介绍Qwt专门负责拾取数据及鼠标跟踪用的QwtPicker及其子类。并对其扩展,构建一个用于显示鼠标经过图像时捕获最近点的拾取器。拾取器Qwt拾取器QwtPicker,用于显示鼠标经过图像时的信息,...

weixin_29097457的博客 833

QWT坐标轴的设置

1自定义坐标轴 x轴设置为系统时间(分钟,秒数)代码如下 class TimeScaleDraw: public QwtScaleDraw //自画坐标轴 { public: TimeScaleDraw() { } virtual QwtText label( double v ) const //重绘坐标轴 刻度值

huayutiancheng的专栏 6199

Qwt 自定义坐标轴tick

Interval and all tick positions of a scale are stored in a QwtScaleDiv object.  You can manually create a QwtScaleDiv and assign it to a plot axis (QwtPlot::setAxisScaleDiv()) , or you can use a Qw

#+! 7864

Qt Qwt之坐标轴移动

最近接触到个pro需要做到这方面,于是找了相关材料,也跟好些人讨论,目前就最简单的使用方法,通过按钮触发去控制 X,Y轴的移动,比例自己定义 这个是X轴放大的 QwtInterval tempIntervalX = Gas_plot->axisScaleDiv(QwtPlot::xBottom).interval(); //标定是X,返回X轴的数据,interval是...

weixin_30553837的博客 770
上一篇: Win7 Qt5.7 QtXlsxWriter 安装笔记
下一篇: Qwt人机交互界面剔非点工具
QQ_278397935
博客等级 码龄18年 120粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值