A, rendering
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]