This example demonstrates how to add a legend box to a pie chart. It also demonstrates alternative sector label format and rounded edge sector shading.
The following is the command line version of the code in "cppdemo/legendpie". The MFC version of the code is in "mfcdemo/mfcdemo". The Qt Widgets version of the code is in "qtdemo/qtdemo". The QML/Qt Quick version of the code is in "qmldemo/qmldemo".
#include "chartdir.h"
int main(int argc, char *argv[])
{
// The data for the pie chart
double data[] = {25, 18, 15, 12, 8, 30, 35};
const int data_size = (int)(sizeof(data)/sizeof(*data));
// The labels for the pie chart
const char* labels[] = {"Labor", "Licenses", "Taxes", "Legal", "Insurance", "Facilities",
"Production"};
const int labels_size = (int)(sizeof(labels)/sizeof(*labels));
// Create a PieChart object of size 450 x 270 pixels
PieChart* c = new PieChart(450, 270);
// Set the center of the pie at (150, 100) and the radius to 80 pixels
c->setPieSize(150, 135, 100);
// add a legend box where the top left corner is at (330, 50)
c->addLegend(330, 60);
// modify the sector label format to show percentages only
c->setLabelFormat("{percent}%");
// Set the pie data and the pie labels
c->setData(DoubleArray(data, data_size), StringArray(labels, labels_size));
// Use rounded edge shading, with a 1 pixel white (FFFFFF) border
c->setSectorStyle(Chart::RoundedEdgeShading, 0xffffff, 1);
// Output the chart
c->makeChart("legendpie.png");
//free up resources
delete c;
return 0;
}
© 2023 Advanced Software Engineering Limited. All rights reserved.