当前位置: 首页 > wzjs >正文

app下载官方网站抖音推广网站

app下载官方网站,抖音推广网站,国外网站 设计,wordpress系统版一、QCPStatisticalBox 概述 QCPStatisticalBox 是 QCustomPlot 中用于绘制箱线图(盒须图)的类,可以显示数据的五个关键统计量:最小值、第一四分位数(Q1)、中位数、第三四分位数(Q3)和最大值,以及可能的异常值。 二、主要属性 属性类型描述…

一、QCPStatisticalBox 概述

QCPStatisticalBox 是 QCustomPlot 中用于绘制箱线图(盒须图)的类,可以显示数据的五个关键统计量:最小值、第一四分位数(Q1)、中位数、第三四分位数(Q3)和最大值,以及可能的异常值。

二、主要属性

属性类型描述
widthdouble箱体的宽度(坐标轴单位)
whiskerWidthdouble须线的宽度(0-1表示比例)
penQPen箱线和须线的画笔属性
brushQBrush箱体填充的画刷属性
whiskerPenQPen须线的画笔属性
medianPenQPen中位线的画笔属性
outlierStyleQCPScatterStyle异常值的散点样式
nameQString箱线图名称(显示在图例中)
visiblebool是否可见
selectablebool是否可选择
selectedbool当前是否被选中

三、常用方法

1. 数据相关方法

方法参数返回值描述
setDatadouble key, double minimum, double lowerQuartile, double median, double upperQuartile, double maximumvoid设置单个箱线图数据
setDataconst QVector<double>& keys, const QVector<double>& minimums, const QVector<double>& lowerQuartiles, const QVector<double>& medians, const QVector<double>& upperQuartiles, const QVector<double>& maximumsvoid设置多个箱线图数据
addDatadouble key, double minimum, double lowerQuartile, double median, double upperQuartile, double maximumvoid添加单个箱线图
addDataconst QVector<double>& keys, const QVector<double>& minimums, const QVector<double>& lowerQuartiles, const QVector<double>& medians, const QVector<double>& upperQuartiles, const QVector<double>& maximumsvoid添加多个箱线图
setOutliersdouble key, const QVector<double>& outliersvoid设置指定key的异常值
addOutliersdouble key, const QVector<double>& outliersvoid添加异常值

2. 样式设置方法

方法参数返回值描述
setWidthdouble widthvoid设置箱体宽度
setWhiskerWidthdouble widthvoid设置须线宽度比例
setPenconst QPen &penvoid设置箱线画笔
setBrushconst QBrush &brushvoid设置箱体填充画刷
setWhiskerPenconst QPen &penvoid设置须线画笔
setMedianPenconst QPen &penvoid设置中位线画笔
setOutlierStyleconst QCPScatterStyle &stylevoid设置异常值样式

3. 交互相关方法

方法参数返回值描述
setSelectableQCP::SelectionType selectablevoid设置可选择类型
setSelectionQCPDataSelection selectionvoid设置选中项
selected-QCPDataSelection获取选中项
selectTestconst QPointF &pos, bool onlySelectable, QVariant *detailsdouble测试点是否选中

四、信号列表

信号参数描述
selectionChangedbool selected选中状态改变时触发
selectableChangedQCP::SelectionType selectable可选择状态改变时触发

五、基础使用示例

cpp

// 创建箱线图
QCPStatisticalBox *statBox = new QCPStatisticalBox(customPlot->xAxis, customPlot->yAxis);// 设置单个箱线图数据 (key, 最小值, Q1, 中位数, Q3, 最大值)
statBox->setData(1, 3.0, 4.5, 5.8, 7.2, 9.0);// 添加异常值
statBox->addOutliers(1, {2.1, 9.5, 10.2});// 设置样式
statBox->setName("数据分布");
statBox->setWidth(0.3);
statBox->setBrush(QColor(100, 150, 250, 100));
statBox->setMedianPen(QPen(Qt::red, 2));
statBox->setWhiskerWidth(0.2);// 设置坐标轴范围
customPlot->xAxis->setRange(0, 2);
customPlot->yAxis->setRange(0, 12);// 刷新显示
customPlot->replot();

六、高级功能示例

1. 多组箱线图比较

cpp

// 创建第一组箱线图
QCPStatisticalBox *statBox1 = new QCPStatisticalBox(customPlot->xAxis, customPlot->yAxis);
statBox1->setData(1, 3.0, 4.5, 5.8, 7.2, 9.0);
statBox1->addOutliers(1, {2.1, 9.5});
statBox1->setName("组A");
statBox1->setWidth(0.3);
statBox1->setBrush(QColor(100, 150, 250, 100));// 创建第二组箱线图
QCPStatisticalBox *statBox2 = new QCPStatisticalBox(customPlot->xAxis, customPlot->yAxis);
statBox2->setData(2, 2.5, 5.0, 6.5, 8.0, 10.0);
statBox2->addOutliers(2, {1.8, 10.5});
statBox2->setName("组B");
statBox2->setWidth(0.3);
statBox2->setBrush(QColor(250, 150, 100, 100));// 设置坐标轴
customPlot->xAxis->setRange(0, 3);
customPlot->yAxis->setRange(0, 12);

2. 自定义选择样式

cpp

statBox->setSelectable(QCP::stWhole); // 允许选择整个箱线图
statBox->setSelectedBrush(QBrush(QColor(255, 100, 100, 150)));
statBox->setSelectedPen(QPen(Qt::red, 2));// 连接选择信号
connect(customPlot, &QCustomPlot::selectionChangedByUser, [=](){if (statBox->selected()) {qDebug() << "箱线图被选中";}
});

3. 从实际数据计算统计量

cpp

// 计算统计量的辅助函数
void calculateStatistics(const QVector<double> &data, double &min, double &q1, double &median, double &q3, double &max, QVector<double> &outliers)
{QVector<double> sorted = data;std::sort(sorted.begin(), sorted.end());int n = sorted.size();min = sorted.first();max = sorted.last();// 计算四分位数q1 = sorted.at(n*1/4);median = sorted.at(n/2);q3 = sorted.at(n*3/4);// 计算异常值(使用1.5IQR规则)double iqr = q3 - q1;double lowerBound = q1 - 1.5*iqr;double upperBound = q3 + 1.5*iqr;for (double val : data) {if (val < lowerBound || val > upperBound) {outliers.append(val);}}
}// 使用示例
QVector<double> dataset = { /* 你的数据 */ };
double min, q1, median, q3, max;
QVector<double> outliers;
calculateStatistics(dataset, min, q1, median, q3, max, outliers);statBox->setData(1, min, q1, median, q3, max);
statBox->setOutliers(1, outliers);

七、箱线图各部分的含义

Q75:上四分位数
Q25:下四分位数
须线(whisker)
箱体(interquartile range)

八、性能优化技巧

  1. 批量设置数据

    cpp

    // 使用vector批量设置数据比多次调用addData更高效
    QVector<double> keys = {1, 2, 3};
    QVector<double> mins = {3.0, 2.5, 3.2};
    // ...其他统计量向量
    statBox->setData(keys, mins, q1s, medians, q3s, maxs);
  2. 简化绘制

    cpp

    statBox->setAntialiased(false); // 关闭抗锯齿提高性能
  3. 使用OpenGL加速

    cpp

    customPlot->setOpenGl(true);

QCPStatisticalBox 提供了完整的箱线图功能,可以有效地展示数据的分布特征和异常值,特别适用于统计分析和数据比较场景。

http://www.dtcms.com/wzjs/826180.html

相关文章:

  • 北京南站地铁企必搜做网站
  • 建设局网站查询爱设计网
  • 网站设计客户需求企业英语网站
  • 青岛网站推广途径chci网站建设
  • 团购网站管理系统dedecms 网站地图
  • 网站正在建设中 动态免费模板素材软件
  • 网站建设服务合同是否缴纳印花税手机网站建设视频教程_
  • 网站建设征集通讯员的通知如何建开发手机网站首页
  • 玉林市建设局网站汉化wordpress的软件
  • 手机网站设计教程推广策略论文
  • 昌平网站开发做网站最贵
  • 为什么建设厅的网站不好打开网络建设与维护
  • 专业的网站制作正规公司泰安房产网网上交易中心
  • 网站开发ipv6升级网站优化方法
  • 网站logo大全做网站链接
  • 网站建设与管理实验目的互联网创业项目推荐
  • 做网站优化的注意事项vue配合什么做网站比较好
  • 珠三角网站建设网页微信怎么登陆
  • 贵州建设职业学院官方网站网站开发合同知识产权
  • 用ps做的网站怎么发布浙江省建设会计协会网站首页
  • 兰州网站建设企业名录枣庄企业网站推广
  • 甘德网站建设站酷网logo素材图库
  • 湘潭网站建设 就问磐石网络专业广安网站建设兼职
  • 袜子网站建设规划书珠海网站建设优化
  • 高安网站制作产品管理系统
  • 嘉兴网站建设推广公司网站制作需要找广告公司么
  • 如何撰写一个网站规划建设方案网站开发专业简历
  • 南京高端网站建设工作室怎样做微信网站
  • 网站建设需要哪些条件wordpress主题dedecms
  • 制作网站站用的软件贵阳公司网站建设