-
UID:177655
-
- 注册时间2016-12-13
- 最后登录2025-01-09
- 在线时间1025小时
-
- 发帖113
- 搜Ta的帖子
- 精华0
- 金钱1300
- 威望134
- 贡献值9
- 好评度124
-
访问TA的空间加好友用道具
|
—
本帖被 20091001753 从 Qt 作品展 移动到本区(2020-04-22)
—
第一列为 南丁格尔玫瑰图第二列为 普通的饼图和圆环饼图第三列为 嵌套饼图 - void MainWindow::setupPieDemo(QCustomPlot *customPlot)
- {
- QCPPie *pie1 = new QCPPie(customPlot);
- QVector<QString> labels = {
- "rose1","rose2","rose3","rose4","rose5","rose6","rose7","rose8",
- };
- QVector<double> values1 = {
- 10, 5, 15, 25, 20, 35, 30, 40
- };
- pie1->add(labels, values1);
- pie1->setHoleSize(0.3);
- pie1->setRadius(0.4);
- pie1->setCenter(0.15, 0.25);
- pie1->setLabelVisible(false);
- pie1->setRoseType(QCPPie::rtRadius);
- connect(pie1, &QCPPie::hoveredSlice, [](QCPPieSlice *slice, bool hovered){
- slice->setLabelVisible(hovered);
- });
- QCPPie *pie2 = new QCPPie(customPlot);
- pie2->add(labels, values1);
- pie2->setHoleSize(0.5);
- pie2->setRadius(0.4);
- pie2->setCenter(0.15, 0.75);
- pie2->setRoseType(QCPPie::rtArea);
- QCPPie *pie3 = new QCPPie(customPlot);
- QVector<QString> labels3 = {
- "直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"
- };
- QVector<double> values3 = {
- 335, 310, 234, 135, 1548
- };
- pie3->add(labels3, values3);
- pie3->setRadius(0.4);
- pie3->setCenter(0.4, 0.25);
- pie3->setTextFormat("{b}:{d}%");
- QCPPie *pie4 = new QCPPie(customPlot);
- pie4->add(labels3, values3);
- pie4->setRadius(0.4);
- pie4->setCenter(0.4, 0.75);
- pie4->setHoleSize(0.7);
- pie4->setLabelVisible(false);
- pie4->setLabelPosition(QCPPieSlice::lpCenter);
- pie4->setLabelFont(QFont("sans-serif", 30, QFont::Bold));
- connect(pie4, &QCPPie::hoveredSlice, [](QCPPieSlice *slice, bool hovered){
- slice->setLabelVisible(hovered);
- });
- QCPPie *pie5 = new QCPPie(customPlot);
- QVector<QString> labels5 = {
- "直达", "营销广告", "搜索引擎"
- };
- QVector<double> values5 = {
- 335, 679, 1548
- };
- pie5->add(labels5, values5);
- pie5->setRadius(0.3);
- pie5->setLabelPosition(QCPPieSlice::lpInside);
- pie5->setLabelColor(Qt::white);
- pie5->setSelectedMode(QCPPie::smSingle);
- pie5->setCenter(0.75, 0.5);
- QCPPie *pie6 = new QCPPie(customPlot);
- QVector<QString> labels6 = {
- "直达", "邮件营销", "联盟广告", "视频广告", "百度", "谷歌", "必应", "其他"
- };
- QVector<double> values6 = {
- 335, 310, 234, 135, 1048, 251, 147, 102
- };
- pie6->add(labels6, values6);
- pie6->setName("访问来源");
- pie6->setRadius(0.55);
- pie6->setHoleSize(0.75);
- pie6->setCenter(0.75, 0.5);
- pie6->setTextFormat("{a}\n{b}:{c} {d}%");
- }
|