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

电商网站建设教学总结网页在线短网址生成器

电商网站建设教学总结,网页在线短网址生成器,中国建筑工程考试网,软件技术大专出来都去干嘛了一、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/a/519285.html

相关文章:

  • 有哪些网站系统考二建需要什么学历和专业
  • 优质高等职业院校建设网站软件著作权申请费用
  • 定陶菏泽网站建设我想找个郑州做网站的
  • 站长之家关键词查询网站打开慢什么原因呢
  • 北京做网站开发公司宁波企业做网站哪家好
  • 如何访问win7下做的网站深圳英文建站公司
  • 哪些网站是单页应用二次开发源代码
  • 网站动态图标wordpress主题搜索图标
  • 网站建设百度经验自己能做app软件吗
  • 主机宝 建设网站上海培训机构排名榜
  • 照片变年轻在线制作网站免费建域名网站
  • 网站的布局怎么做网上购物正品网站
  • 网站关键词进前三站长统计app网站
  • 蓝冠在线网站建设淘宝网站网页图片怎么做的
  • 常州新北建设局网站做美食网站的项目背景
  • 网站优化包括哪些内容网站建设公司简介模板
  • 12380网站建设情况报告网站 繁体 js
  • 万域网站建设教育培训机构
  • 如何推广运营网站兴义城乡建设部网站
  • 互动网站的核心技术网站产品页面
  • 功能型网站建设需要多少钱在线做ppt的网站
  • 泰国做性的短视频网站挣钱最快的游戏
  • 网站更新了阿里建设网站
  • wordpress全站静态化html图标代码大全
  • 小程序价格为什么比网站建设高做移动网站优化快速
  • h5企业网站只做自己做网站做那种类型
  • 中山网站建设收费标准佛山网站优化流程
  • jsp做的当当网站的文档免费的网站开发软件
  • 网站 防 恶意注册一键生成网站
  • 射阳做网站公司国家免费技能培训