C++ 如何设置KDChart BarDiagram的固定范围?
我想使用C++ 如何设置KDChart BarDiagram的固定范围?,c++,qt,C++,Qt,我想使用KDChart库显示一个BarDiagram。垂直值应在-120到0之间 通常,KDChart从0开始显示条形图,如下所示: 现在,KDChart::CartesianCoordination Plane有一个方法setVerticalRangeReversed(bool) 调用该方法后,图表如下所示: 我需要的是两者的混合,其中条形图如下图所示,但Y轴如上图所示。 在KDChart中有没有办法让条形图从-120开始,然后向0增长 因为y轴值的最小值为-120,所以我将值从[-120
KDChart
库显示一个BarDiagram。垂直值应在-120到0之间
通常,KDChart从0开始显示条形图,如下所示:
现在,KDChart::CartesianCoordination Plane
有一个方法setVerticalRangeReversed(bool)
调用该方法后,图表如下所示:
我需要的是两者的混合,其中条形图如下图所示,但Y轴如上图所示。在KDChart中有没有办法让条形图从-120开始,然后向0增长 因为y轴值的最小值为-120,所以我将值从[-120,0]转换为[0,120], 通过每个值加上abs(-120) 我们还必须转换y轴刻度,CartesianAxis有一个接口setAnnotations(QMap)。所以我做了一张这样的地图:
QMap<double, QString> m;
m.insert(0, "-120");
m.insert(20, "-100");
m.insert(60, "-60");
//...
m.insert(120, "0");
yAxis->setAnnotations(m);
static_cast<CartesianCoordinatePlane*>(chart->coordinatePlane())->setVerticalRange(qMakePair(-120,0));
QMap-m;
m、 插入(0,“-120”);
m、 插入(20,“-100”);
m、 插入(60,“-60”);
//...
m、 插入(120,“0”);
yAxis->setAnnotations(m);
现在,图表看起来正常:您可以使用以下工具手动设置轴的范围:
CartesianCoordinatePlane::setVerticalRange(const QPair< qreal, qreal > & range)
笛卡尔坐标平面::设置垂直范围(常量QPair QMap<double, QString> m;
m.insert(0, "-120");
m.insert(20, "-100");
m.insert(60, "-60");
//...
m.insert(120, "0");
yAxis->setAnnotations(m);
static_cast<CartesianCoordinatePlane*>(chart->coordinatePlane())->setVerticalRange(qMakePair(-120,0));
static_cast(图表->坐标平面())->setVerticalRange(qMakePair(-120,0));
我不知道这个问题的解决方案,但我重写了这个问题,以便让其他人更容易理解您想要实现的目标。如果我弄错了你的问题,请重新编辑此。如果你仍然没有解决方案,你可以尝试使用底部方法,并自己对轴进行子类化和绘制感谢,我有一个解决方案。作为侧节点:value+=abs(-120)
与value+=120