美文网首页echart
QCustomPlot(二):图形绘制基础

QCustomPlot(二):图形绘制基础

作者: 秋冬不寒 | 来源:发表于2022-05-09 23:05 被阅读0次

    本文为QCustomPlot官方教程的中文翻译版。
    本教程使用customPlot 指针指向 QCustomPlot 实例。如果您在 QtCreator 中提升了一个小部件,可以通过 ui->customPlot (或您为小部件指定的任何名称)访问相应的小部件。

    您可以通过customPlot->addGraph()在图中创建一个新图形 。然后,通过customPlot->graph(0)->setData(..)为图形分配一些数据点,例如以两个QVector<double>的形式表示 x 和 y ()。QCustomPlot 使用术语 而不是xy的原因是为了允许更灵活地分配哪个轴具有什么作用。因此,如果您将左轴定义为“关键轴”,将底部定义为“值轴”,您可以在图的左侧绘制一个直立的图形。默认情况下,QCustomPlot 小部件有四个轴:customPlot->xAxis, yAxis, xAxis2, 和 QCPAxis类型的yAxis2
    ,对应于下、左、上、右轴。它们的范围定义了绘图的哪个部分当前可见:customPlot->xAxis->setRange(-1, 1)。

    要对绘图进行任何类型的更改,请调用customPlot->replot() 。请注意,当小部件调整大小和触发内置用户交互时,将自动发生重新绘制。例如用鼠标拖动轴范围和用鼠标滚轮缩放这样的用户交互。

    // generate some data:
    QVector<double> x(101), y(101); // initialize with entries 0..100
    for (int i=0; i<101; ++i)
    {
      x[i] = i/50.0 - 1; // x goes from -1 to 1
      y[i] = x[i]*x[i]; // let's plot a quadratic function
    }
    // create graph and assign data to it:
    customPlot->addGraph();
    customPlot->graph(0)->setData(x, y);
    // give the axes some labels:
    customPlot->xAxis->setLabel("x");
    customPlot->yAxis->setLabel("y");
    // set axes ranges, so we see all data:
    customPlot->xAxis->setRange(-1, 1);
    customPlot->yAxis->setRange(0, 1);
    customPlot->replot();
    

    输出应如下所示。

    刻度步长和标签由轴当前使用的轴刻度自动选择 。这是 类型QCPAxisTicker的一个实例,可以通过如xAxis->ticker().访问。您可以通过 xAxis->ticker()->setTickCount(6)调整ticks 数量,ticker 尝试创建的大致ticks 数量。默认轴标记非常适合简单的数字显示,但也有专门的类,例如时间跨度、日历日期、类别、pi(或其他符号单位)和对数轴。有关详细信息,请参阅 QCPAxisTicker文档。

    轴的刻度标签(数字)永远不会超出小部件边框,即使它们变宽也是如此。这是由于默认启用的自动页边距计算。如果刻度标签和轴标签需要更多空间,它会使轴矩形缩小。如果您不希望自动确定边距,请通过调用customPlot->axisRect()->setAutoMargins(QCP::msNone)禁用该行为。然后您可以通过 customPlot->axisRect()->setMargins(..).手动调整边距。

    QCustomPlot(一):基础
    QCustomPlot(三):图形绘制基础之样式修改

    相关文章

      网友评论

        本文标题:QCustomPlot(二):图形绘制基础

        本文链接:https://www.haomeiwen.com/subject/qxykurtx.html