说明(废话)

这里只是说明我的问题,请寻找解决方案的直接跳到解决方案处查看。
对于我的项目来说,我的热力图有时候需要被某些算法来输出一个矩形,并被标记热力图上的部分目标区域。于是,热力图已经绘制出来,如何绘制矩形是个问题,因为热力图可以通过鼠标放大缩小,这是矩形也应该跟随矩形放大缩小移动位置等。本身热力图就是通过QcustomPlot开源代码实现,于是查看其是否提供有实现方法。通过查找,这方面的内容确实不多,也没有很好的使用这方面的说明,于是有此文章。
其实本来决定用重绘接口来实现,后来感觉这样太过于麻烦,而且要考虑的问题挺多的,于是决定读一读源码看看有没有更好的解决方案…

//主要代码
auto txt = new QCPItemRect (n_cpplot);
txt->setLayer(“overlay”);
txt->setClipToAxisRect(false);
txt->setPen(QPen (Qt:white, 2));
//这下面两行是设置位置
txt->topleft->setCoords(100, 10);
txt->bottonRight->setCoords(10,100);
//m_cpplot->addItem(txt);
//刷新
RefreshPlot ();

下面展示一些 内联代码片

// A code block
//主要代码
auto txt = new QCPItemRect (n_cpplot);
txt->setLayer("overlay");
txt->setClipToAxisRect(false);
txt->setPen(QPen (Qt:white, 2));
//这下面两行是设置位置
txt->topleft->setCoords(100, 10);
txt->bottonRight->setCoords(10,100);
//m_cpplot->addItem(txt);
RefreshPlot ();

以上内容是解决实现的核心,至于其他热力图需要自己实现了。

由于代码是通过手机拍的,有点模糊,请谅解!
在这里插入图片描述
放一张实现的结果∶

在这里插入图片描述
上图的小白框就是我需要实现的目标,矩形框可以跟随图形一起移动或者放大缩小,是我需要的结果!也希望对您有所帮助!

QCustomplot绘制热力图Hotmap时,加矩形框中目标区域QCPColormap矩形框绘制QCPItemRect的使用方法说明(废话)解决方案说明(废话)这里只是说明我的问题,请寻找解决方案的直接跳到解决方案处查看。对于我的项目来说,我的热力图有时候需要被某些算法来输出一个矩形,并被标记热力图上的部分目标区域。于是,热力图已经绘制出来,如何绘制矩形是个问题,因为热力图可以通过鼠标放大缩小,这是矩形也应该跟随矩形放大缩小移动位置等。本身热力图就是通过QcustomPlot开源代码实现,于是查看其
参考文章:https://segmentfault.com/a/1190000022114010 一、QCustuomPlot的分层机制 QCustomPlot的分层系统是控制图元素渲染顺序的机制。最初,QCustomPlot有五个层:“background”、“grid”、“main”、“axes”和“legend”(按顺序)。最上面两层“轴”和“图例”包含默认轴和图例,因此它们将绘制在顶部。 间是“主”层。它最初为空并设置为当前层(请参见QCustomPlot::setCurrentLayer)。
网上那些炫酷的热力图是如何绘制的? 相信你也很好奇,本文将以 canvas 作为绘图示例来讲解热力图的原理。 我们经常遇到透明度的概念,如 CSS 的 opacity 属性、rgba 颜色的 alpha 变量、canvas 的 globalAlpha 属性等。 它们的取值范围一般是 0-1 之间,0 表示完全透明,1 表示不透明,值越小,越透明。 透明度叠加 思考一个问题: 透明度...
基于Qt GUI 框架 C++语言的 热力图/瀑布图/频谱图,用冷暖色调的颜色谱来表示其数据幅值的强弱(大小)分布,特别适用于长距离管线的目标监测,从实瀑布图可以清晰的监测长管线在某点的异常情况。 绘图技术采用Qt原始的 QPinter 类、QRect等GDI绘图技术,实现坐标的创建和屏幕像素的的绘制。 本程序为测试程序,仅调用DirectUIX2_release.dll文件,来实现瀑布图。需要dll生成的源码需要付费,联系博主。 本程序仅供学习、和参考,禁止使用于商业用途,否则后果自负。 在此 感谢同行及各位大佬的的支持!祝大家天天好心情。
有一个问题l困扰了我很多天,就是如何在QT实现跟MATALBimagesc函数一样能够根据二维数组存储的数据的大小自动绘制不同颜色的图形,就如下图所示的瀑布图。 由于自己是边学边做,没有经过系统学习,很多不知道,一开始想自己手工撸代码实现,写了大半天累的要死,后来突然搜索到两篇关于瀑布图的文章,最后学习了解了相关知识最后终于实现了自己想要的功能。(所参考文章在最后)...
本章节是仿造echarts的热力图:地址 QCustomPlot热力图QCPColorMap,所以应该称为颜色图更为合适一点,一般来说一副颜色图会由两个部分组成 QCPColorMap 颜色图 QCPColorScale 色条,供颜色图取色用的 除了这两个,还有一个重要的家伙,那就是颜色渐变QCPColorGradient,它决定了颜色图的数据对应的是什么颜色...
#include “qcustomplot.h” void SetGraph_Img(QCustomPlot *p_imag); //设置谱图图纸 QCPColorMap *m_pColorMap;//新建一个色图对象 在.cpp文件如下所示,代码都在注释上,调用·传入一个绘图区域的指针即可 //用来设置方法后的lofar谱图 void TL_System::SetGraph_Img(QCustomPlot *p_imag) // p_imag = ui->wi
QCustomPlot,可以使用多个坐标轴矩形(QCPAxisRect)来绘制多个图表,你可以在已经绘制的图下面再一个坐标轴矩形,具体步骤如下: 1. 创建新的坐标轴矩形对象: ```cpp QCPAxisRect *newAxisRect = new QCPAxisRect(customPlot); 2. 设置新坐标轴矩形的范围和属性: ```cpp newAxisRect->setupFullAxesBox(true); newAxisRect->setMargins(QMargins(50, 10, 10, 40)); // 设置新坐标轴矩形的边距 newAxisRect->axis(QCPAxis::atBottom)->setLabel("X轴标签"); newAxisRect->axis(QCPAxis::atLeft)->setLabel("Y轴标签"); 3. 在新坐标轴矩形上添加QCPGraph对象,并设置其数据: ```cpp QCPGraph *graph2 = new QCPGraph(newAxisRect->axis(QCPAxis::atBottom), newAxisRect->axis(QCPAxis::atLeft)); // 将QCPGraph对象添加到新的坐标轴矩形 graph2->setData(xData, yData); // xData和yData是你的数据 4. 添加新坐标轴矩形到QCustomPlot: ```cpp customPlot->plotLayout()->addElement(1, 0, newAxisRect); // 将新坐标轴矩形添加QCustomPlot,1和0分别表示新坐标轴矩形所在的行和列 5. 重新绘制QCustomPlot: ```cpp customPlot->replot(); // 重新绘制QCustomPlot,新的坐标轴矩形和QCPGraph对象将显示在已有坐标轴矩形的下方 注意,在添加新的坐标轴矩形和QCPGraph对象之后,如果需要对其进行调整,可以通过相应的方法进行设置。并且需要注意,如果不再需要使用新的坐标轴矩形和QCPGraph对象,需要将其从QCustomPlot移除并释放内存: ```cpp customPlot->plotLayout()->removeAt(1); // 将新坐标轴矩形从QCustomPlot移除 delete newAxisRect; delete graph2; 以上是一个简单的例子,你可以根据自己的需求进行调整和扩展。
win10安装安卓子系统android13肯定成功Windows Subsystem for Android(WSA)install 无法定位程序输入点ucal_getHostTimeZone 无网络
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding错误解决 MATLAB MCR容器安装过程:‘Could not initialize Python MATLAB Data Array‘ 和 ‘ImportError: libpython3.8.so.1.0 python调用MATLAB函数的一个诡异的问题,数据类型问题