1、概述
QBoxSet
类代表箱形图中的一个条目。箱形条目是范围和由五个不同值构成的三个中值的图形表示。这五个值分别是:下极值、下四分位数、中位数、上四分位数和上极值。QBoxSet
提供了多种方法来设置和获取这些值,并且可以与 QBoxPlotSeries
和 QChart
配合使用,实现专业的箱线图数据可视化。
2、重要方法
QBoxSet(const QString &label = QString(), QObject *parent = nullptr)
:构造一个带有可选标签的箱线图条目。QBoxSet(const qreal le, const qreal lq, const qreal m, const qreal uq, const qreal ue, const QString &label = QString(), QObject *parent = nullptr)
:构造一个具有指定值的箱线图条目。
void append(const QList<qreal> &values)
:将一个实数值列表附加到箱线图条目的末尾。void append(const qreal value)
:将一个新值附加到箱线图条目的末尾。qreal at(int index) const
:返回指定索引处的值,如果索引超出范围,则返回 0.0。void clear()
:将箱线图条目中的所有值设置为 0。void setValue(int index, qreal value)
:设置指定索引处的值。QList<qreal> values() const
:返回箱线图条目中的所有值。
qreal minimum() const
:获取最小值。qreal lowerQuartile() const
:获取下四分位数。qreal median() const
:获取中位数。qreal upperQuartile() const
:获取上四分位数。qreal maximum() const
:获取最大值。void setMinimum(qreal value)
:设置最小值。void setLowerQuartile(qreal value)
:设置下四分位数。void setMedian(qreal value)
:设置中位数。void setUpperQuartile(qreal value)
:设置上四分位数。void setMaximum(qreal value)
:设置最大值。
void setBrush(const QBrush &brush)
:设置箱线图条目的填充画刷。void setPen(const QPen &pen)
:设置箱线图条目的绘制画笔。
QString label() const
:获取箱线图条目的标签。void setLabel(const QString &label)
:设置箱线图条目的标签。
3、信号
void brushChanged()
:当箱线图条目的画刷发生变化时发出此信号。void cleared()
:当箱线图条目中的所有值都被设置为 0 时发出此信号。void clicked()
:当用户点击箱线图条目时发出此信号。void doubleClicked()
:当用户双击箱线图条目时发出此信号。void hovered(bool status)
:当鼠标悬停在箱线图条目上时发出此信号,status
为true
表示鼠标移入,为false
表示鼠标移出。void penChanged()
:当箱线图条目的画笔发生变化时发出此信号。void pressed()
:当用户按下箱线图条目时发出此信号。void released()
:当用户释放对箱线图条目的按下时发出此信号。void valueChanged(int index)
:当箱线图条目中指定索引处的值发生变化时发出此信号。void valuesChanged()
:当箱线图条目中的多个值发生变化时发出此信号。
4、cpp实例
#include <QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QAreaSeries>
#include <QLegend>
#include <QLegendMarker>
#include <QFont>
#include <QBarSet>
QT_CHARTS_USE_NAMESPACEint main(int argc, char *argv[])
{QApplication a(argc, argv);// 创建一个箱线图条目QBoxSet *set = new QBoxSet("Sample Set");// 设置箱线图条目的值set->setValue(QBoxSet::LowerExtreme, 1.0);set->setValue(QBoxSet::LowerQuartile, 2.0);set->setValue(QBoxSet::Median, 3.0);set->setValue(QBoxSet::UpperQuartile, 4.0);set->setValue(QBoxSet::UpperExtreme, 5.0);// 创建一个箱线图系列QBoxPlotSeries *series = new QBoxPlotSeries();series->append(set);// 创建一个图表并添加系列QChart *chart = new QChart();chart->addSeries(series);chart->setTitle("Box Plot Example");// 创建一个图表视图并显示QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);QMainWindow window;window.setCentralWidget(chartView);window.resize(800, 600);window.show();return a.exec();
}
觉得有帮助的话,打赏一下呗。。
需要商务合作(定制程序)的欢迎私信!!