c++ 如何在Qt中添加趋势线到我的图表中?

yebdmbv4  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(139)

我想在Qt中的图表中添加一条趋势线。
如何在线图上绘制趋势线?

6kkfgxo0

6kkfgxo01#

以下是如何从数学上计算趋势线:
斜率:

偏移:

趋势线公式:

其中,

a is slope
x is the horizontal axis value
b is the Y-intercept

通常你有分散的数据组成你的图表。无论您使用QtWidget还是QML,您都可以遵循以下步骤。

  • 首先,求x值的平均值和y值的平均值。
  • 接下来,找出每个x值和x值的平均值之间的距离,以及每个y值和y值的平均值之间的距离。
  • 然后乘以(x(i) - X(i)) by (y(i) - Y(i)),并乘以(x(i) - X(i))本身。
  • 求第一个公式之和((x(i) - X(i)) by (y(i) - Y(i)))与第二个公式之和((x(i) - X(i))
  • 用第一个公式的和除以第二个公式的和,得到斜率a。
  • 得到x和y的平均值,并使用趋势线公式找到B值:y = ax + B所以b = y-ax

然后你就有了应用趋势线方程的一切
使用您的公式,您现在可以使用两个点在QCustomPLot上绘制线趋势:

QCPItemStraightLine *trendLine = new QCPItemStraightLine(customPlot);
trendLine->point1->setCoords(x, y);  // location of point 1 in plot coordinate
trendLine->point2->setCoords(xx, yy);  // location of point 2 in plot coordinate

相关问题