(QPieSlice QPieSeries) Pie Chart (QBarSet QBarSeries) QChart QChartView histogram graph (a)

A, rendering
Here Insert Picture Description
two, pie codes

#include "piechart.h"

PieChart::PieChart(QWidget *parent):
    BasicWindow(parent)
{
    resize(parent->size());
    init();
    show();
}

void PieChart::init(){
    // 构造3个饼状分区,A数据显示绿色占60%,B数据显示蓝色占40%
    QPieSlice *slice_1 = new QPieSlice(QStringLiteral("A"), 0.4, this);
    slice_1->setLabelVisible(true);
    slice_1->setBrush(QBrush("#006633"));
    slice_1->setLabelPosition(QPieSlice::LabelOutside);
    slice_1->setLabelBrush(QBrush(Qt::black));
//    slice_1->setExploded(true);
    QPieSlice *slice_2 = new QPieSlice(QStringLiteral("B"), 0.3, this);
    slice_2->setLabelVisible(true);
    slice_2->setBrush(Qt::blue);
    slice_2->setLabelPosition(QPieSlice::LabelOutside);
    slice_2->setLabelBrush(QBrush(Qt::black));
    QPieSlice *slice_3 = new QPieSlice(QStringLiteral("C"), 0.3, this);
    slice_3->setLabelVisible(true);
    slice_3->setBrush(QBrush("#FFCC00"));
    slice_3->setLabelPosition(QPieSlice::LabelOutside);
    slice_3->setLabelBrush(QBrush(Qt::black));

    // 将两个饼状分区加入series
    QPieSeries *series = new QPieSeries(this);
    series->append(slice_1);
    series->append(slice_2);
    series->append(slice_3);

    QChart *chart = new QChart();
    chart->addSeries(series);
    chart->setAnimationOptions(QChart::AllAnimations); // 设置显示时的动画效果
    chart->legend()->setAlignment(Qt::AlignBottom);//设置图例显示在底部,默认在顶部
    chart->setTheme(QChart::ChartThemeLight);//设置整个图表的背景主题,默认是ChartThemeLight主题

    QChartView *chartview = new QChartView(chart);

    chartview->setRenderHint(QPainter::Antialiasing);
    chartview->setChart(chart);
    chartview->setParent(this);
    chartview->resize(this->size());
    chartview->show();
}

Third, the histogram Code

#include "verticalbarchart.h"

VerticalBarChart::VerticalBarChart(QWidget *parent):
    BasicWindow(parent)
{
    resize(parent->size());
    init();
    show();
}

void VerticalBarChart::init()
{
    QtCharts::QBarSet *set0 = new QtCharts::QBarSet("Jane");
    QtCharts::QBarSet *set1 = new QtCharts::QBarSet("John");
    QtCharts::QBarSet *set2 = new QtCharts::QBarSet("Axel");
    QtCharts::QBarSet *set3 = new QtCharts::QBarSet("Mary");
    QtCharts::QBarSet *set4 = new QtCharts::QBarSet("Samantha");

    *set0 << 1 << 2 << 3 << 4 << 5 << 6;// Jane 6个月份的值
    *set1 << 5 << 1 << 7 << 4 << 3 << 7;
    *set2 << 3 << 5 << 8 << 19<< 8 << 5;
    *set3 << 5 << 6 << 7 << 3 << 4 << 5;
    *set4 << 9 << 7 << 5 << 3 << 1 << 2;

    QtCharts::QBarSeries *series = new QtCharts::QBarSeries();
    series->append(set0);
    series->append(set1);
    series->append(set2);
    series->append(set3);
    series->append(set4);

    QtCharts::QChart *chart = new QtCharts::QChart();
    chart->addSeries(series);
//    chart->setTitle("Simple barchart example");
    chart->setAnimationOptions(QtCharts::QChart::SeriesAnimations);

    QStringList categories;
    categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
    QtCharts::QBarCategoryAxis *axis = new QtCharts::QBarCategoryAxis();
    axis->append(categories);
    chart->createDefaultAxes();//创建默认的左侧的坐标轴(根据 QBarSet 设置的值)
    chart->setAxisX(axis, series);//设置坐标轴
    chart->legend()->setVisible(true); //设置图例为显示状态
    chart->legend()->setAlignment(Qt::AlignBottom);//设置图例的显示位置在底部

    QtCharts::QChartView *chartView = new QtCharts::QChartView(chart);
    chartView->setRenderHint(QPainter::Antialiasing);
    chartView->setParent(this);
    chartView->resize(this->size());
    chartView->show();
}

e-mail: [email protected]

Published 30 original articles · won praise 1 · views 1157

Guess you like

Origin blog.csdn.net/u010906468/article/details/104684981