Qt之qcustomplot绘图总结

1、绘图类:

QCPGraph :折线图

QCPCurve:用于曲线图,可以有循环

QCPBars:柱形图,如果有多个QCPBars ,可以依次重叠

QCPStatisticalBox(需实例化):盒子图

QCPColorMap(实例化):色谱图

QCPFinancial(实例化):金融图

QCPAbstractItem:标示项,包含:

QCPItemStraightLine:直线

QCPItemLine:线段

QCPItemCurve:曲线

QCPItemRect:矩形

QCPItemEllipse:椭圆

QCPItemText:文本

QCPItemTracer:小圆球

QCPItemPixmap:图片

QCPItemBracket:括弧

布局项(QCPLayoutElement):布局项(QCPAbstractLegendItem)、坐标轴矩形(QCPAxisRect)

网格线(QCPGrid):每一个坐标轴对应一个网格线

坐标轴(QCPAxis):一个坐标轴矩形包含四个坐标轴,上下左右四个坐标轴。


2、绘图的基本函数:

QCustomPlot有四个QCPAxis成员变量,四个坐标轴:xAxis(下)yAxis(左)xAxis2(上)yAxis2(右)

  1. setTickStep(double step);//设置刻度间距  
  2. setTickVector(const QVector<double> &vec);//将坐标轴刻度设置为vec  
  3. setAutoTickStep(bool on);//设置是否自动分配刻度间距  
  4. setAutoTicks(bool on);//设置是否自动分配刻度  
  5. setAutoTickCount(int approximateCount);//设置是否自动分配刻度数量  
  6. setBasePen:设置基础画笔
  7. setTickPen:设置刻度画笔
  8. setTickLength:设置刻度长度
  9. setSubTickLength:
  10. setSubTickPen:
  11. setTickLabelFont:设置刻度label字体
  12. setLabelFont:  设置label字体
  13. setTickLabelPadding:设置标签间距
  14. setLabelPadding:设置标签
  15. setRangeReversed:
  16. setLineStyle((QCPGraph::LineStyle)i);//设置线性
  17. setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle, 5));//设置每个节点数据绘制风格,默认是空,这里设置为空心圆
  18. rescaleAxes(true);//坐标轴自适应
  19. setTicks(true);//y轴显示刻度
  20. setTickLabels(false);//x轴不显示文本
  21. setTickLabels(true);//y轴显示文本
  22. setupFullAxesBox();一个默认的坐标轴矩形配置,包括:顶部坐标轴跟随底部坐标轴同步、右侧坐标轴跟随左侧坐标轴同步,不仅仅是坐标轴范围跟随同步,包括文本精度、文本格式、坐标轴类型、是否自动生成刻度、刻度间距等等
  23. setTextAlignment(Qt::AlignLeft);//设置文本在矩形区域的位置
  24. setTextAlignment(Qt::AlignLeft);//设置文本在矩形区域的位置
  25. setFont(QFont(font().family(), 9));//设置文本的字体
  26. setPositionAlignment(Qt::AlignRight | Qt::AlignBottom);//设置位置在矩形区域的位置
实例:

// 添加数据
     pCustomPlot->graph( 0 )->setData(x, y);
 
     // 设置坐标轴名称
     pCustomPlot->xAxis->setLabel( "x" );
     pCustomPlot->yAxis->setLabel( "y" );
 
     // 设置背景色
     pCustomPlot->setBackground(QColor( 50 , 50 , 50 ));
 
     pGraph->setPen(QPen(QColor( 32 , 178 , 170 )));
 
     // 设置x/y轴文本色、轴线色、字体等
     pCustomPlot->xAxis->setTickLabelColor(Qt::white);
     pCustomPlot->xAxis->setLabelColor(QColor( 0 , 160 , 230 ));
     pCustomPlot->xAxis->setBasePen(QPen(QColor( 32 , 178 , 170 )));
     pCustomPlot->xAxis->setTickPen(QPen(QColor( 128 , 0 , 255 )));
     pCustomPlot->xAxis->setSubTickPen(QColor( 255 , 165 , 0 ));
     QFont xFont = pCustomPlot->xAxis->labelFont();
     xFont.setPixelSize( 20 );
     pCustomPlot->xAxis->setLabelFont(xFont);
 
     pCustomPlot->yAxis->setTickLabelColor(Qt::white);
     pCustomPlot->yAxis->setLabelColor(QColor( 0 , 160 , 230 ));
     pCustomPlot->yAxis->setBasePen(QPen(QColor( 32 , 178 , 170 )));
     pCustomPlot->yAxis->setTickPen(QPen(QColor( 128 , 0 , 255 )));
     pCustomPlot->yAxis->setSubTickPen(QColor( 255 , 165 , 0 ));
     QFont yFont = pCustomPlot->yAxis->labelFont();
     yFont.setPixelSize( 20 );
     pCustomPlot->yAxis->setLabelFont(yFont);
 
     // 设置坐标轴显示范围,否则只能看到默认范围
     pCustomPlot->xAxis->setRange(- 11 , 11 );
     pCustomPlot->yAxis->setRange(- 1100 , 1100 );


猜你喜欢

转载自blog.csdn.net/u014252478/article/details/80430000
今日推荐