19. QCustomPlot QCPColorMap类参考

表示绘图中二维彩色图的绘图表

https://www.qcustomplot.com/documentation/classQCPColorMap.html

继承图

 

详细说明

表示绘图中二维彩色图的绘图表。

QCPColorMap.png

数据存储在QCPColorMapData类中,可以通过data()方法进行访问。

彩色图具有三个维来表示数据点:维,维和数据维。与其他绘图表(例如图形)一样,与您在QCPColorMap构造函数中指定的QCustomPlot曲面上的两个正交轴相对应。但是,数据维被编码为(keyvalue)点的颜色。

通过QCPColorMapData :: setSize设置键/值维度中的点(或单元格)数。通过QCPColorMapData :: setRange指定将显示这些点的绘图坐标范围。第一个单元格将以较低范围边界为中心,最后一个单元格将以较高范围边界为中心。可以通过直接使用QCPColorMapData :: setCell访问单元格或通过使用QCPColorMapData :: setData通过其坐标绘制单元格来设置数据。如果可能的话,您应该首选setCell,因为它不需要进行任何坐标转换,因此性能会更好一些。

如果颜色图使用法线(即非反向)键和值轴,则索引为(0,0)的单元格位于左下方。

为了向用户显示哪些颜色对应于哪些数据值,通常将QCPColorScale放置在轴rect的右侧。有关如何添加和使用色标的详细信息,请参见此处的文档。

改变外观

外观的中心部分是颜色渐变,可以通过setGradient指定。有关配置颜色渐变的详细信息,请参见QCPColorGradient的文档。

可以使用setDataRange指定映射到渐变颜色的数据范围。为了使数据范围包含最小到最大的整个数据集,请调用rescaleDataRange

透明度

彩色地图的透明度可以通过两种机制来实现。一方面,您可以通过常规QColor接口为QCPColorGradient的色标指定alpha值。这将导致映射到这些色标周围的颜色的颜色图数据以相应的插值透明度出现。

另一方面,您还可以通过使用QCPColorMapData的alpha贴图功能,直接将alpha值应用于独立于其数据的每个单元格。相关方法是QCPColorMapData :: setAlphaQCPColorMapData :: fillAlphaQCPColorMapData :: clearAlpha()

这两个透明胶片将在绘图中连接在一起,否则不会互相干扰。它们以乘法形式混合,因此两种模式下的alpha值例如分别为50%(128/255),则总透明度为25%(64/255)。

用法

像所有表示QCustomPlot中对象的数据一样,QCPColorMap是一个绘图表(QCPAbstractPlottable)。所以的plottable接口QCustomPlot适用(QCustomPlot :: plottableQCustomPlot :: removePlottable等)

通常,您首先创建一个实例:

  QCPColorMap *colorMap = new QCPColorMap(customPlot->xAxis, customPlot->yAxis);
它通过传递的轴的QCustomPlot实例注册它。请注意,此QCustomPlot实例拥有该绘图表的所有权,因此不要手动将其删除,而应使用QCustomPlot :: removePlottable()。可以修改新创建的绘图表,例如:
 
  colorMap->data()->setSize(50, 50);
  colorMap->data()->setRange(QCPRange(0, 2), QCPRange(0, 2));
  for (int x=0; x<50; ++x)
    for (int y=0; y<50; ++y)
      colorMap->data()->setCell(x, y, qCos(x/10.0)+qSin(y/10.0));
  colorMap->setGradient(QCPColorGradient::gpPolar);
  colorMap->rescaleDataRange(true);
  customPlot->rescaleAxes();
  customPlot->replot();
笔记

即使将键或值轴设置为对数比例,QCPColorMap始终以相等的键/值间隔显示数据。如果要对数轴使用QCPColorMap,则不应使用QCPColorMapData :: setData方法,因为它使用线性变换来确定单元格索引。而是直接使用QCPColorMapData :: setCell访问单元格索引

  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值