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

开一个做网站的公司天津seo结算

开一个做网站的公司,天津seo结算,那个网站做任务赚钱,采招网是怎样做的网站一、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/494588.html

相关文章:

  • 珠海专业做网站公司公司网站怎么弄
  • 上海医疗网站建设网站优化推广的方法
  • 网站建设中html百度产品
  • wordpress圆角插件宁波受欢迎全网seo优化
  • 九江网站建设下载百度手机助手
  • 网站开发环境vs2015是什么上海网站排名seo公司哪家好
  • 广州货运网站建设网络运营推广
  • 网站目录做301企业专业搜索引擎优化
  • 网站做等保三级建设seogw
  • 优化网站建设价格友情链接的英文
  • 音乐网站首页设计搜索引擎广告推广
  • 做网站来钱快十大洗脑广告
  • 溧阳网站建设公司引流用什么话术更吸引人
  • 网站建设的基本原则九易建网站的建站流程
  • 自己建设网站多少钱域名站长工具
  • 台州微网站建设国内比百度好的搜索引擎
  • 南京做网站公司地点在百度怎么创建自己的网站
  • 用HBuilder做网站的模板如何做好推广
  • 文化墙优化神马排名软件
  • 力洋深圳做网站公司怎么快速刷排名
  • 免费做网站哪个好小程序运营推广公司
  • 企业为什么选择网站建设网站搜索工具
  • 浙江省建设厅官方网站傻瓜式自助建站系统
  • 一家专门做特产的网站爱网
  • 做网站电话号码线上宣传方案
  • 成都网站建设与开发黄金网站app大全
  • 做外贸的在哪些网站找工作腾讯会议开始收费
  • 做模特的网站免费关键词优化工具
  • 上海网站开发月薪多少钱seo排名教程
  • 怎么用ajax做电商网站江苏网络推广公司