首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使QtChart在一定范围内不绘制折线图?

在使用QtChart库绘制折线图时,想要在一定范围内不绘制折线图,可以通过以下步骤实现:

  1. 创建一个自定义的类继承自QLineSeries,用于重写virtual QLineSeries::line()函数。
  2. 在重写的line()函数中,判断当前点的横坐标是否在指定的范围内。
  3. 如果在指定范围内,则调用QLineSeries::line()函数绘制折线;如果不在范围内,则不进行绘制。

以下是示例代码:

代码语言:txt
复制
#include <QtCharts>

class CustomLineSeries : public QtCharts::QLineSeries
{
public:
    CustomLineSeries(QObject* parent = nullptr)
        : QtCharts::QLineSeries(parent)
    {
    }

    virtual void line(const QPointF &point1, const QPointF &point2)
    {
        // 设置需要忽略的范围,这里以x坐标为例
        qreal minRange = 2.0;
        qreal maxRange = 8.0;

        // 判断点的横坐标是否在指定范围内
        if (point1.x() >= minRange && point1.x() <= maxRange &&
            point2.x() >= minRange && point2.x() <= maxRange)
        {
            // 在指定范围内,调用原始的line函数绘制折线
            QtCharts::QLineSeries::line(point1, point2);
        }
    }
};

使用自定义的CustomLineSeries类替代原始的QLineSeries类,即可实现在指定范围内不绘制折线图。

在使用QtChart库绘制折线图时,也可以通过调整数据源的方式达到不绘制折线图的效果。具体做法是在一定范围内将数据设置为无效值,QtChart库会自动忽略这些无效值进行绘制。示例代码如下:

代码语言:txt
复制
#include <QtCharts>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QtCharts::QChartView chartView;

    QtCharts::QLineSeries series;

    // 添加数据
    series << QPointF(1, 5)
           << QPointF(2, 3)
           << QPointF(3, std::numeric_limits<qreal>::quiet_NaN())  // 将数据设置为无效值
           << QPointF(4, 7)
           << QPointF(5, std::numeric_limits<qreal>::quiet_NaN())  // 将数据设置为无效值
           << QPointF(6, 2)
           << QPointF(7, 6);

    chartView.chart()->addSeries(&series);
    chartView.show();

    return app.exec();
}

上述代码中,通过使用std::numeric_limits<qreal>::quiet_NaN()将数据设置为无效值,在绘制折线图时会自动跳过这些无效值。

这是使用QtChart库在一定范围内不绘制折线图的两种方式,具体选择哪种方式取决于实际需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 写【Python折线图】的一百个技巧(一、生成折线图网页)

    本系列文章主要针对Python语言【pyecharts】库生成折线图功能进行深入探究与二次开发而撰写的,专栏文章的作用是帮助大家在工作中【快速】、【高效】、【美观】、【大气】的展示各种适合【折线图】的数据,且只针对折线图,我相信折线图才是最美的图表,在折线图中你能找到真正的数学之美,当前只针对生成网页类型可以截图使用,也可以通过录制操作过程生成小视频的方式使用,后期我会想办法针对视频自动演示进行研究,可能前几十篇或甚至是上百篇文章都是对折线图的具体探究与深度学习,后面的文章我会写一些功能类的GUI工具,用于生成各类折线图,有望在2024年的年会PPT汇报上给予大家【唯美】的帮助。

    04

    传递数据背后的故事——图表设计

    图表设计是数据可视化的一个分支领域,是对数据进行二次加工,用统计图表的方式进行呈现。数据是事实或观察的结果,是对客观事物的逻辑归纳,通常一个具体的数字比一个模糊的说法更加具有可信度和说服力。但单纯的数字本身并不能提供足够的影响力,假设一个淘宝女装卖家3月份的成交金额是50万,这个数据本身并不能说明什么问题,但是当你加上4月份60万,5月份的成交金额70万等多个月的数据,通过折线图的方式呈现,可以判断出成交金额是上升趋势,再结合去年同时段的销售曲线进行对比和其他维度信息的补充(图1-1),可能推断出是因为换季所带来得销量增长,店铺可以考虑加大夏季款的上新。所以我们说图表是解读数字的一种强有力的手段。

    01
    领券