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();
}
覺得有幫助的話,打賞一下唄。。
? ? ? ? ? ?
需要商務合作(定制程序)的歡迎私信!!?