最基本的柱状图:
//数据
QBarSet *set0 = new QBarSet("SET0");
*set0<<0<<10<<8<<12<<7<<19<<14;
//分组
QBarSeries *series = new QBarSeries();
series->append(set0);
//图表
QChart *chart=new QChart;
QChartView *chartview=new QChartView;
chart->addSeries(series);
//横、纵坐标轴线
QValueAxis *axisX=new QValueAxis;
QValueAxis *axisY=new QValueAxis;
axisX->setRange(0,10); //X轴的范围
axisX->setTickCount(11); //X轴分成多少格
axisY->setRange(0,21); //Y轴的范围
axisY->setTickCount(11); //Y分成多少格
//将图标放入chartview
chart->createDefaultAxes();
chart->setAxisX(axisX,series);
chart->setAxisY(axisY,series);
chartview->setChart(chart);
//将表格放入布局中
QVBoxLayout *boxlayout=new QVBoxLayout;
boxlayout->addWidget(chartview);
this->setLayout(boxlayout);
各种属性设置与优化:
//柱颜色
set0->setColor(Qt::black);
//柱状中lable位置,显示数据的值
series->setLabelsPosition(QAbstractBarSeries::LabelsInsideEnd);
series->setLabelsVisible(true);
chart->setTitle("这是表格标题");
chart->setAnimationOptions(QChart::SeriesAnimations); //动画
chart->legend()->setVisible(true); //数据标签名
chart->legend()->setAlignment(Qt::AlignBottom); //数据标签位置
chartview->setRenderHint(QPainter::Antialiasing);
axisX->setRange(0,10);
axisY->setRange(0,20);
//X轴的设置
axisX->setTitleText("这是X轴名");
axisX->setLabelFormat("%.1f"); //小数位数
axisX->setTickCount(11); //分成多少格
axisX->setGridLineVisible(true); //网格显示
axisX->setGridLineColor(QColor(Qt::blue));//网格颜色
axisX->setMinorTickCount(4); //小刻度
axisX->setMinorGridLineColor(Qt::green); //小刻度线颜色
axisX->setLabelsColor(Qt::red); //轴刻度的文字颜色
//X轴的设置
axisY->setTitleText("这是Y轴名");
axisY->setLabelFormat("%.1f"); //小数位数
axisY->setTickCount(11); //分成多少格
axisY->setGridLineVisible(true); //网格显示
axisY->setGridLineColor(QColor(Qt::blue));//网格颜色
axisY->setMinorTickCount(4); //小刻度
axisY->setMinorGridLineColor(Qt::green); //小刻度线颜色
axisY->setLabelsColor(Qt::red); //轴刻度的文字颜色
//自定义小刻度线
QPen pen;
pen.setStyle(Qt::SolidLine); //实线
pen.setWidth(1); //宽度
pen.setBrush(QColor(50, 50, 50, 100)); //颜色
pen.setCapStyle(Qt::SquareCap); //笔迹尾部
pen.setJoinStyle(Qt::BevelJoin); //笔迹转角
axisX->setMinorGridLinePen(pen);
axisY->setMinorGridLinePen(pen);