精华内容
下载资源
问答
  • QCustomPlot柱状图.rar

    2021-01-26 00:08:39
    QCustomPlot柱状图QCustomPlot柱状图QCustomPlot柱状图QCustomPlot柱状图
  • QCustomPlot柱状图

    2020-01-20 12:29:57
    /* 底部柱状图 */ QCPBars * barBottom = new QCPBars ( ui - > customPlot - > xAxis , ui - > customPlot - > yAxis ) ; /* 数据添加 */ QVector < double > a ( 5 ) ; QVector < double > b ...

    效果

    barPlot

    代码

    mainwindow.cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        ui->customPlot->xAxis->setRange(0, 10);
        ui->customPlot->yAxis->setRange(0, 10);
    
    
        /* 核心代码 */
        /* 底部柱状图 */
        QCPBars *barBottom = new QCPBars(ui->customPlot->xAxis, ui->customPlot->yAxis);
        /* 数据添加 */
        QVector<double> a(5);
        QVector<double> b(5);
        a<<1<<2<<3<<4<<5;
        b<<1<<2<<3<<4<<5;
        /* 样式改变 */
        barBottom->setBrush(QColor(10, 140, 70, 160));
    
        barBottom->setData(a, b);
    
        /* 顶部柱状图 */
        QCPBars *barTop = new QCPBars(ui->customPlot->xAxis, ui->customPlot->yAxis);
        QVector<double> c(5);
        QVector<double> d(5);
        c<<1<<2<<3<<4<<5;
        d<<1<<2<<1<<2<<1;
        barTop->setData(c, d);
        barTop->setBrush(QColor(10, 100, 50, 70));
        barTop->moveAbove(barBottom);
    
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    
    展开全文
  • QCustomPlot 柱状图实例 (个人注释)

    千次阅读 2018-11-08 15:19:20
    void MainWindow::setupBarChartDemo(QCustomPlot *customPlot) { demoName = "Bar Chart Demo";//实例名称 // set dark background gradient: 设置暗背景渐变 QLinearGradient gradient(0, 0, 0, 400)...

     

    void MainWindow::setupBarChartDemo(QCustomPlot *customPlot)
    {
      demoName = "Bar Chart Demo";//实例名称
      // set dark background gradient: 设置暗背景渐变
      QLinearGradient gradient(0, 0, 0, 400);
      gradient.setColorAt(0, QColor(90, 90, 90));//开始颜色为黑色
      gradient.setColorAt(0.38, QColor(200, 105, 105));//红色
      gradient.setColorAt(1, QColor(70, 70, 70));//黑色
      customPlot->setBackground(QBrush(gradient));//设置图表背景(用画刷设置)
      
      // create empty bar chart objects: 这个就是创建柱状图了
      //新版本应该是取消了之前的AddPlottable(不是很清楚,大概这样子)
      //然后直接在new QCPBars的时候指定x,y轴就可以了
      QCPBars *regen = new QCPBars(customPlot->xAxis, customPlot->yAxis);
      QCPBars *nuclear = new QCPBars(customPlot->xAxis, customPlot->yAxis);
      QCPBars *fossil = new QCPBars(customPlot->xAxis, customPlot->yAxis);
      regen->setAntialiased(false); // gives more crisp, pixel aligned bar borders
      nuclear->setAntialiased(false);//取消反锯齿
      fossil->setAntialiased(false);
      regen->setStackingGap(1);//设置与下方柱子的像素点间隔
      nuclear->setStackingGap(1);
      fossil->setStackingGap(1);
      // set names and colors: 设置名字和颜色
      fossil->setName("Fossil fuels");
      fossil->setPen(QPen(QColor(111, 9, 176).lighter(170)));// >100 则返回较浅的颜色
      fossil->setBrush(QColor(111, 9, 176));
      nuclear->setName("Nuclear");
      nuclear->setPen(QPen(QColor(250, 170, 20).lighter(150)));
      nuclear->setBrush(QColor(250, 170, 20));
      regen->setName("Regenerative");
      regen->setPen(QPen(QColor(0, 168, 140).lighter(130)));
      regen->setBrush(QColor(0, 168, 140));
      // stack bars on top of each other://移动bar到其他bar上方
      nuclear->moveAbove(fossil);
      regen->moveAbove(nuclear);
      
      // prepare x axis with country labels: //设置x轴标签
      QVector<double> ticks;
      QVector<QString> labels;
      ticks << 1 << 2 << 3 << 4 << 5 << 6 << 7;
      labels << "USA" << "Japan" << "Germany" << "France" << "UK" << "Italy" << "Canada";
      QSharedPointer<QCPAxisTickerText> textTicker(new QCPAxisTickerText);
      textTicker->addTicks(ticks, labels);
      customPlot->xAxis->setTicker(textTicker);
      customPlot->xAxis->setTickLabelRotation(60);//设置标签角度旋转
      customPlot->xAxis->setSubTicks(false);//设置是否显示子标签
      customPlot->xAxis->setTickLength(0, 4);
      customPlot->xAxis->setRange(0, 8);设置x轴区间
      customPlot->xAxis->setBasePen(QPen(Qt::white));
      customPlot->xAxis->setTickPen(QPen(Qt::white));
      customPlot->xAxis->grid()->setVisible(true);//设置网格是否显示
      customPlot->xAxis->grid()->setPen(QPen(QColor(130, 130, 130), 0, Qt::DotLine));
      customPlot->xAxis->setTickLabelColor(Qt::white);//设置标记标签颜色
      customPlot->xAxis->setLabelColor(Qt::white);
      
      // prepare y axis: //设置y轴
      customPlot->yAxis->setRange(0, 12.1);
      customPlot->yAxis->setPadding(5); // a bit more space to the left border 设置左边留空间
      customPlot->yAxis->setLabel("Power Consumption in\nKilowatts per Capita (2007)");
      customPlot->yAxis->setBasePen(QPen(Qt::white));
      customPlot->yAxis->setTickPen(QPen(Qt::white));
      customPlot->yAxis->setSubTickPen(QPen(Qt::white));//设置SubTick颜色,SubTick指的是轴上的                
                                                        //刻度线
      customPlot->yAxis->grid()->setSubGridVisible(true);
      customPlot->yAxis->setTickLabelColor(Qt::white);//设置标记标签颜色(y轴标记标签)
      customPlot->yAxis->setLabelColor(Qt::white);//设置标签颜色(y轴右边标签)
      customPlot->yAxis->grid()->setPen(QPen(QColor(130, 130, 130), 0, Qt::SolidLine));
      customPlot->yAxis->grid()->setSubGridPen(QPen(QColor(130, 130, 130), 0, Qt::DotLine));
      
      // Add data:添加数据
      QVector<double> fossilData, nuclearData, regenData;
      fossilData  << 0.86*10.5 << 0.83*5.5 << 0.84*5.5 << 0.52*5.8 << 0.89*5.2 << 0.90*4.2 << 0.67*11.2;
      nuclearData << 0.08*10.5 << 0.12*5.5 << 0.12*5.5 << 0.40*5.8 << 0.09*5.2 << 0.00*4.2 << 0.07*11.2;
      regenData   << 0.06*10.5 << 0.05*5.5 << 0.04*5.5 << 0.06*5.8 << 0.02*5.2 << 0.07*4.2 << 0.25*11.2;
      //setData(QVector<double> , QVector<double>) 第一个参数是指定哪条bar
      fossil->setData(ticks, fossilData);
      nuclear->setData(ticks, nuclearData);
      regen->setData(ticks, regenData);
      
      // setup legend: 设置标签
      customPlot->legend->setVisible(true);
      customPlot->axisRect()->insetLayout()->setInsetAlignment(0, Qt::AlignTop|Qt::AlignHCenter);
      customPlot->legend->setBrush(QColor(255, 255, 255, 100));
      customPlot->legend->setBorderPen(Qt::NoPen);
      QFont legendFont = font();
      legendFont.setPointSize(10);
      customPlot->legend->setFont(legendFont);
      customPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);//设置 可拖动,可放大缩小
    }

    1.QLinearGradient Class

    The QLinearGradient class is used in combination with QBrush to specify a linear gradient brush.

    QLinearGradient类和QBrush类一起使用用来指定一个渐变画笔

    2.setStackingGap 
    void QCPBars::setStackingGap (double pixels)

    If this bars plottable is stacked on top of another bars plottable (moveAbove),

    this method allows specifying a distance in pixels, by which the drawn bar rectangles will be separated by the bars below it. 

    如果这条bars plottable是在另一条bars plottable上方,这句话设置这条bars plottable与下方bars plottable的像素点间隔

     

    展开全文
  • QCustomPlot_柱状图.zip

    2020-08-17 22:50:01
    QCustomPlot 之竖向柱状图,实现了三个参数左右并排的显示,并且将参数值也显示在上面! 详情参考:https://blog.csdn.net/qq_40501206/article/details/108065801
  • 最近开发的项目中有对数据进行柱状图展示的功能要求,维护的项目里也有类似的功能需求,是使用qcustomplot这个库实现的,这次对于这个功能也使用这个库来实现,对此做一下简单记录,方便以后查阅。 这个控件功能...

    最近开发的项目中有对数据进行柱状图展示的功能要求,维护的项目里也有类似的功能需求,是使用qcustomplot这个库实现的,这次对于这个功能也使用这个库来实现,对此做一下简单记录,方便以后查阅。

    这个控件功能比较强大,使用也比较方便,不仅可以绘制柱状图,还可以绘制曲线等,这里仅记录绘制柱状图过程中可能使用的接口,更多接口的使用可以参考qcustomplot官网

    1.添加从官网下载的两个文件(qcustomplot.h,qcustomplot.cpp)到QtGUI项目目录,添加完成后添加我们可以添加一个Widget控件,控件添加完成后,右键将控件提升为Qcustomplot。这样我们就可以在项目里正常使用了。

    头文件

    #ifndef WIDGET_H
    #define WIDGET_H
    
    #include <QWidget>
    #include "qcustomplot.h"
    namespace Ui {
    class Widget;
    }
    
    class Widget : public QWidget
    {
        Q_OBJECT
        
    public:
        explicit Widget(QWidget *parent = 0);
        ~Widget();
        
    private:
        Ui::Widget *ui;
    
        QCPBars* m_bar;
    };
    
    #endif // WIDGET_H
    

    源文件

    #include "widget.h"
    #include "ui_widget.h"
    
    Widget::Widget(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::Widget)
    {
        ui->setupUi(this);
        //设置X坐标轴信息
        QVector<double> ticks; //要显示的刻度
        QVector<QString> labels;//要显示的刻度的下标
        for(int i = 1; i <= 10; i++)
        {
            if(i%2==0)
            {
                ticks<<i;
                labels<<QString::number(i);
            }
        }
        ui->Plot->xAxis->setAutoTicks(false); //禁用自动刻度-如果不禁用就无法设置自定义刻度
        ui->Plot->xAxis->setAutoTickLabels(false);//禁用自动刻度标签
        ui->Plot->xAxis->setTickVector(ticks);//设置要显示的刻度
        ui->Plot->xAxis->setTickVectorLabels(labels);//设置要显示刻度的下标
        ui->Plot->xAxis->setSubTickCount(0); //设置两个刻度之间是否
        ui->Plot->xAxis->setTickLength(2,2);//设置刻度长度,第一个是向内的长度,第二个是向外的长度
        ui->Plot->xAxis->setRange(0,11); //设置坐标轴范围
    
        //y轴同理,这里简单设置一下
    
        ui->Plot->yAxis->setNumberFormat("f");
        ui->Plot->yAxis->setNumberPrecision(1);
        ui->Plot->yAxis->setTickLength(1,0);
        ui->Plot->yAxis->setRange(0,12);
    
        //实例化QCPBars
        m_bar = new QCPBars(ui->Plot->xAxis,ui->Plot->yAxis);
        ui->Plot->addPlottable(m_bar);
    
        //准备数据
        QVector<double> v_index;
        QVector<double> v_data;
        QVector<QColor> v_color;
    
        float mm = 10.0;
        for(int i=0;i<10;i++)
        {
            v_index<<i+1;
            v_data<<mm;
            v_color<<Qt::green;
        }
    
        //填充数据
        m_bar->setData(v_index,v_data,v_color);
    }
    
    Widget::~Widget()
    {
        delete ui;
    }
    

    程序运行效果:

     

    展开全文
  • QCustomPlot柱状图(三)

    千次阅读 2020-03-13 17:41:58
    QCustomPlot中,柱状图需要使用QCPBars类, QCPBars的使用很简单 竖向柱状图 创建一个柱状图,并且设置它的风格 QCPAxis *keyAxis = customPlot->xAxis; QCPAxis *valueAxis = customPlot->...

    在QCustomPlot中,柱状图需要使用QCPBars类, QCPBars的使用很简单

    竖向柱状图

    创建一个柱状图,并且设置它的风格

    QCPAxis *keyAxis = customPlot->xAxis;
    QCPAxis *valueAxis = customPlot->yAxis;
    QCPBars *fossil = new QCPBars(keyAxis, valueAxis);  // 使用xAxis作为柱状图的key轴,yAxis作为value轴
    
    fossil->setAntialiased(false); // 为了更好的边框效果,关闭抗齿锯
    fossil->setName("Fossil fuels"); // 设置柱状图的名字,可在图例中显示
    fossil->setPen(QPen(QColor(0, 168, 140).lighter(130))); // 设置柱状图的边框颜色
    fossil->setBrush(QColor(0, 168, 140));  // 设置柱状图的画刷颜色
    

    之后,我们为柱状图的key轴设置一个文字类型的轴

    // 为柱状图设置一个文字类型的key轴,ticks决定了轴的范围,而labels决定了轴的刻度文字的显示
    QVector<double> ticks;
    QVector<QString> labels;
    ticks << 1 << 2 << 3 << 4 << 5 << 6 << 7;
    labels << "USA" << "Japan" << "Germany" << "France" << "UK" << "Italy" << "Canada";
    QSharedPointer<QCPAxisTickerText> textTicker(new QCPAxisTickerText);
    textTicker->addTicks(ticks, labels);
    
    keyAxis->setTicker(textTicker);        // 设置为文字轴
    

    设置柱状图轴范围,并且为其添加数据数据

    keyAxis->setTickLabelRotation(60);     // 轴刻度文字旋转60度
    keyAxis->setSubTicks(false);           // 不显示子刻度
    keyAxis->setTickLength(0, 4);          // 轴内外刻度的长度分别是0,4,也就是轴内的刻度线不显示
    keyAxis->setRange(0, 8);               // 设置范围
    keyAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
    
    valueAxis->setRange(0, 12.1);
    valueAxis->setPadding(35);             // 轴的内边距,可以到QCustomPlot之开始(一)看图解 
    valueAxis->setLabel("Power Consumption in\nKilowatts per Capita (2007)");
    valueAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
    QVector<double> fossilData;
    fossilData  << 0.86*10.5 << 0.83*5.5 << 0.84*5.5 << 0.52*5.8 << 0.89*5.2 << 0.90*4.2 << 0.67*11.2;
    fossil->setData(ticks, fossilData);
    

    竖向柱状图

    横向柱状图

    横向柱状图也很简单,只要设置key轴为y轴,value轴为x轴即可

    QCPAxis *keyAxis = customPlot->yAxis;
    QCPAxis *valueAxis = customPlot->xAxis;
    

    横向柱状图

    柱状堆积图

    为了展示堆积图,我们再添加了两个柱状图

    QCPBars *regen = new QCPBars(keyAxis, valueAxis);
    QCPBars *nuclear = new QCPBars(keyAxis, valueAxis);
    QCPBars *fossil = new QCPBars(keyAxis, valueAxis);  // 使用xAxis作为柱状图的key轴,yAxis作为value轴
    

    设置它们的数据

    QVector<double> fossilData, nuclearData, regenData;
    fossilData  << 0.86*10.5 << 0.83*5.5 << 0.84*5.5 << 0.52*5.8 << 0.89*5.2 << 0.90*4.2 << 0.67*11.2;
    nuclearData << 0.08*10.5 << 0.12*5.5 << 0.12*5.5 << 0.40*5.8 << 0.09*5.2 << 0.00*4.2 << 0.07*11.2;
    regenData   << 0.06*10.5 << 0.05*5.5 << 0.04*5.5 << 0.06*5.8 << 0.02*5.2 << 0.07*4.2 << 0.25*11.2;
    fossil->setData(ticks, fossilData);
    nuclear->setData(ticks, nuclearData);
    regen->setData(ticks, regenData);
    

    接下来设置堆积方式

    regen->setStackingGap(1);    // 设置堆积在其它柱状图上时的间距(像素)
    nuclear->setStackingGap(1);
    
    nuclear->moveAbove(fossil);  // 将nuclear移到fossil之上
    regen->moveAbove(nuclear);
    

    柱状堆积图

    柱状分组图

    柱状分组图需要引入一个新的类:QCPBarsGroup,首先注释掉上面的堆积方式的代码

    QCPBarsGroup *group = new QCPBarsGroup(customPlot);  
    
    QList<QCPBars*> bars;
    bars << fossil << nuclear << regen;
    
    foreach (QCPBars *bar, bars) {
      // 设置柱状图的宽度类型为以key坐标轴计算宽度的大小,其实默认就是这种方式
      bar->setWidthType(QCPBars::wtPlotCoords);
      bar->setWidth(bar->width() / bars.size()); // 设置柱状图的宽度大小
      group->append(bar);  // 将柱状图加入柱状图分组中
    }
    
    group->setSpacingType(QCPBarsGroup::stAbsolute);  // 设置组内柱状图的间距,按像素
    group->setSpacing(2);     // 设置较小的间距值,这样看起来更紧凑
    

    柱状分组图

    柱状图宽度类型和柱状分组图间距类型

    柱状图有三种宽度类型,分别是:

    • QCPBars::wtAbsolute 宽度是绝对像素大小,即setWidth设置为多少就是多少
    • QCPBars::wtAxisRectRatio 宽度大小是以QCPAxisRect的大小决定的,当key轴为水平的时候,宽度大小为setWidth设置的比例值乘以QCPAxisRect的宽度;key轴为垂直的时候,是乘以QCPAxisRect的高度
    • QCPBars::wtPlotCoords 宽度大小是以key坐标轴刻度位置以及setWidth设置的值确定,宽度的计算方式为当前key±width

    柱状分组图的间距类型和柱状图的宽度类型是类似的

    在柱状图上显示值

    有时候我们需要在柱状图上显示具体的值,这时我们仅需继承QCPBars

    // 头文件CustomBars.h
    class CustomBars : public QCPBars
    {
    public:
        explicit CustomBars(QCPAxis *keyAxis, QCPAxis *valueAxis);
    
        Qt::Alignment textAligment() const { return mTextAlignment; }
        double spacing() const { return mSpacing; }
        QFont font() const { return mFont; }
    
        void setTextAlignment(Qt::Alignment alignment);
        void setSpacing(double spacing);
        void setFont(const QFont &font);
    
    protected:
        Qt::Alignment mTextAlignment;   // 文字对齐方式
        double mSpacing;                // 文字与柱状图的间距,这里按像素大小
        QFont mFont;                    // 文字使用的字体
    
        virtual void draw(QCPPainter *painter) Q_DECL_OVERRIDE;
    };
    
    // 源文件CustomBars.cpp
    CustomBars::CustomBars(QCPAxis *keyAxis, QCPAxis *valueAxis)
        : QCPBars (keyAxis, valueAxis),
          mTextAlignment(Qt::AlignCenter),
          mSpacing(5),
          mFont(QFont(QLatin1String("sans serif"), 12))
    {
    
    }
    
    void CustomBars::setTextAlignment(Qt::Alignment alignment)
    {
        mTextAlignment = alignment;
    }
    
    void CustomBars::setSpacing(double spacing)
    {
        mSpacing = spacing;
    }
    
    void CustomBars::setFont(const QFont &font)
    {
        mFont = font;
    }
    

    draw函数的绘制 我们直接拷贝QCPBars的draw函数源码过来,在其上面修改即可

    // 源文件CustomBars.cpp
    void CustomBars::draw(QCPPainter *painter)
    {
    
        // 以上是拷贝的源码部分
        painter->drawPolygon(barRect);
    
        // 我们仅需在 painter->drawPolygon(barRect); 这行下增加以下的内容即可
        
        // 计算文字的位置
        painter->setFont(mFont);                     // 设置字体
        QString text = QString text = QString::number(it->value, 'g', 2);   // 取得当前value轴的值,保留两位精度
    
        QRectF textRect = painter->fontMetrics().boundingRect(0, 0, 0, 0, Qt::TextDontClip | mTextAlignment, text);  // 计算文字所占用的大小
    
        if (mKeyAxis.data()->orientation() == Qt::Horizontal) {    // 当key轴为水平轴的时候
            if (mKeyAxis.data()->axisType() == QCPAxis::atTop)     // 上轴,移动文字到柱状图下面
                textRect.moveTopLeft(barRect.bottomLeft() + QPointF(0, mSpacing));
            else                                                   // 下轴,移动文字到柱状图上面
                textRect.moveBottomLeft(barRect.topLeft() - QPointF(0, mSpacing));
            textRect.setWidth(barRect.width());
            painter->drawText(textRect, Qt::TextDontClip | mTextAlignment, text);
        } else {                                                  // 当key轴为竖直轴的时候
            if (mKeyAxis.data()->axisType() == QCPAxis::atLeft)   // 左轴,移动文字到柱状图右边
                textRect.moveTopLeft(barRect.topRight() + QPointF(mSpacing, 0));
            else                                                  // 右轴,移动文字到柱状图左边
                textRect.moveTopRight(barRect.topLeft() - QPointF(mSpacing, 0));
            textRect.setHeight(barRect.height());
            painter->drawText(textRect, Qt::TextDontClip | mTextAlignment, text);
        }
        
        // 以下是拷贝的源码部分
    }
    

    使用很简单,仅需将QCPBars替换成CustomBars

    CustomBars *regen = new CustomBars(keyAxis, valueAxis);
    CustomBars *nuclear = new CustomBars(keyAxis, valueAxis);
    CustomBars *fossil = new CustomBars(keyAxis, valueAxis);  // 使用xAxis作为柱状图的key轴,yAxis作为value轴
    

    在柱状图上显示数值

    最后补充一点

    我们可以通过setBaseValue函数设置柱状图的起点位置,这个函数仅对最底下的柱状图有效果(即其没有堆积在别的柱状图之上)

    foreach (QCPBars *bar, bars) {
      // 设置柱状图的宽度类型为以key坐标轴计算宽度的大小,其实默认就是这种方式
      bar->setBaseValue(2.5);     // 设置柱状图的起点为value轴值为2.5的位置
    }
    

    设置柱状图起点位置

    展开全文
  • QT 用qcustomplot画图(柱状图为例)实现柱状图上显示value 我在网上找了好多demo但是在customplot中是没有直接的方法显示value。 如果想要在柱状图上显示每个value则需要自己在draw()中自己添加 painter-&...
  • QCustomPlot实现柱状图

    千次阅读 2016-10-10 11:14:17
    1、添加qcustomplot库文件  添加qcustomplot.cpp和...如下所示: 2、提升widget为QCustomPlot类 3、修改mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow
  • QCustomplot绘制柱状图及显示数据 结果图: 如图所示,当鼠标移动到柱形长方块,会显示对应的纵坐标值。 具体实现代码: //柱状图绘制(时间对比柱状图) void Timetable::timeHistogram_make() { ui->plot_time-...
  • QT使用QCustomPlot 绘制柱状图

    千次阅读 2015-06-30 15:59:37
    今天因为需要在QT底下绘制一个柱状图,由于不想自己麻烦重载一个QWidget所以就在网上搜索到了QCustomPlot,按照这个项目主页的图像显示它是可以满足我的要求。 首先来看一下效果图(绘制风格,画刷,颜色都使用的...
  • QCustomPlot实现柱状图 动态显示

    千次阅读 2016-10-11 16:11:46
    1、创建工程添加qcustomplot....如下所示: 2、在ui界面添加QWidget控件提升为QCustomPlot类 3、修改mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *paren
  • 使用QCustomPlot柱状图实现点击事件

    千次阅读 2018-11-09 11:12:51
    最近要将之前做的QtCharts的柱状图改成用QCustomPlot 要实现之前的功能,结果发现QCustomPlot里面只有这些信号:   而在我们使用的柱子类QCPBars里面却只有三个信号:     直接 做connect也只有这些 ...
  • QCustomPlot柱状图 一、使用环境 Qt+vs2017+QCustomPlot QCustomPlot的使用,只需引入.cpp和.h即可 遇到的问题: Link2019 “__declspec(dllimport) public: __cdecl QPrinter::QPrinter(enum QPrinter::...
  • 我们使用QCustomPlot提供的QCPBars来表示柱状图 QCPBars* bars=new QCPBars(this->ui->widget->xAxis,this->ui->widget->yAxis); QVector<double> index(5); for(int i=0;i;++i) index[i]=i; bars...
  • 1、首先就是绘制在柱状图:QCPBars* bars=new QCPBars(this-&gt;ui-&gt;qcustomPlot1-&gt;xAxis,this-&gt;ui-&gt;qcustomPlot1-&gt;yAxis);bars-&gt;setAntialiased(false); 2、...
  • 柱状图例子(QCustomPlot

    千次阅读 2016-03-14 15:29:08
    柱状图例子(QCustomPlot): void Widget::setupPlot() { QVectordouble> datax = QVectordouble>() 1 2 3 4; QVectordouble> datay1 = QVectordouble>() 0.6 0.5 0.3 0.15; QVectordoubl
  • Qt超强绘图QCustomplot 动态静态时间坐标轴

    千次阅读 多人点赞 2019-03-19 18:26:45
    这个功能很强 画曲线图折线图柱状图动态静态 放大缩小 都很好用 10w条数据量无压力 秒画出来 一点也不卡 这是下载地址 https://www.qcustomplot.com/index.php/download 里面分为 QCustomPlot 2 和 QCustom...
  • 一、前言 本来想在便捷的帖子中写,但是文章太长了,占用空间,所以想想还是单独分离出来,之后有新内容更新也会随时更新...#include "CustomWidget/QCustomPlot/qcustomplot.h" #include "CustomWidget/QCustomPlot/
  • QCustomplot图(三)

    2020-09-09 09:50:05
    一、可以实现的图 相对于其他绘制图表的第三方库来说,QCustomPlot算是比较轻量的,不仅仅能实现功能,而且二次开发比较容易。下面我们来具体说下他可以实现那些图 ... QCPBars:柱状图,如图3所示 QCPF...
  • QCustomPlot使用之绘制散点

    千次阅读 2017-12-18 10:36:56
    一、简单概述:QCustomPlot是基于Qt封装的一个图形绘制库、可以绘制散点图、曲线图、柱状图等各种图形,并可以把各种图形导出为png、jpg等各种格式的图片,使用很方便,只有两个文件qcustomplot.h和qcustomplot.cpp...
  • QCustomPlot是一个小型的Qt画图标类,支持绘制静态曲线、动态曲线、多重坐标曲线,柱状图,蜡烛图等。只需要在项目中加入头文件qcustomplot.h和qcustomplot.cpp文件,然后使一个widget提升为QCustomPlot类,即可使用...
  • QCustomplot

    2021-05-18 23:16:34
    一、可以实现的图 相对于其他绘制图表的第三方库来说,QCustomPlot算是比较轻量的,不仅仅能实现功能,而且二次开发比较容易。下面我们来具体说下他可以实现那些图 ... QCPBars:柱状图,如图3所示 QCPF...
  • QCustomPlot是一个小型的Qt画图标类,支持绘制静态曲线、动态曲线、多重坐标曲线,柱状图,蜡烛图等 前段时间用QChart模块画图,一条曲线上面放8000条数据就会卡的不行必须要换个其他的控件,后来找到了曲线图模块...
  • 最近接连做了几个项目,都需要用到曲线及柱状图动态显示数据,于是特意将qcustomplot开源绘图库研究了个遍!正如园子里的kimit大神所说,qcustomplot虽说就一个头文件和实现文件,用起来方便,但是代码里面比起QWT来...
  • Qt 柱状图

    千次阅读 2018-03-22 10:37:48
    1.官网下载qcustomplot .cpp,qcustomplot.h文件2.将上述两个文件放在自己的工作目录下3.将上述两个文件引入CMakeLists.txt中如(qcustomplot .cpp,qcustomplot.h放置的位置和main.cpp在同一目录下):set(SOURCE_...

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

qcustomplot柱状图