Creación de gráficos de barras porcentuales

Nota: Esto es parte del ejemplo de la Galería de Gráficos con Widgets.

Un gráfico de barras porcentuales muestra los datos de los conjuntos como un porcentaje de todos los conjuntos por categoría.

Crear gráficos de barras porcentuales es como crear un gráfico de barras normal, excepto que para un gráfico de barras porcentuales, usamos la API QPercentBarSeries en lugar de QBarSeries. Además, en el gráfico de barras usamos el algoritmo de números agradables para hacer que la numeración del eje y se vea mejor. En el gráfico de barras porcentuales no es necesario, ya que el valor máximo del eje Y es siempre 100.

Captura de pantalla de un gráfico de barras porcentuales

Los conjuntos de barras se utilizan de la misma manera en todos los gráficos de barras. Para ilustrar la diferencia entre los distintos gráficos de barras, utilizamos los mismos datos en todos los ejemplos. Los datos visualizados por el gráfico de barras están definidos por instancias de QBarSet. Aquí creamos los conjuntos y les añadimos los datos. Los datos se añaden aquí con el operador <<. Alternativamente se podría utilizar el método append.

auto set0 = new QBarSet("Jane");
auto set1 = new QBarSet("John");
auto set2 = new QBarSet("Axel");
auto set3 = new QBarSet("Mary");
auto set4 = new QBarSet("Samantha");

*set0 << 1 << 2 << 3 << 4 << 5 << 6;
*set1 << 5 << 0 << 0 << 4 << 0 << 7;
*set2 << 3 << 5 << 8 << 13 << 8 << 5;
*set3 << 5 << 6 << 7 << 3 << 4 << 5;
*set4 << 9 << 7 << 5 << 3 << 1 << 2;

Creamos la serie y le añadimos los conjuntos de barras. La serie toma posesión de los conjuntos de barras. La serie agrupa los datos de conjuntos a categorías. Los primeros valores de cada conjunto se agrupan en la primera categoría, los segundos valores en la segunda categoría, etc.

auto series = new QPercentBarSeries;
series->append(set0);
series->append(set1);
series->append(set2);
series->append(set3);
series->append(set4);

Aquí creamos el objeto gráfico y le añadimos la serie. Establecemos el título del gráfico con setTitle, y luego activamos las animaciones de las series llamando a setAnimationOptions(QChart::SeriesAnimations)

auto chart = new QChart;
chart->addSeries(series);
chart->setTitle("Simple Percent Bar Chart");
chart->setAnimationOptions(QChart::SeriesAnimations);

Para que las categorías se muestren en un eje, necesitamos crear primero un QBarCategoryAxis. Aquí creamos un eje de categorías con una lista de categorías y lo añadimos al gráfico alineado en la parte inferior, actuando como eje x. El gráfico se apropia del eje. El gráfico toma posesión del eje. Para el eje y utilizamos un eje de valores, alineado a la izquierda.

QStringList categories {"Jan", "Feb", "Mar", "Apr", "May", "Jun"};
auto axisX = new QBarCategoryAxis;
axisX->append(categories);
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
auto axisY = new QValueAxis;
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);

También queremos mostrar la leyenda. Para ello, obtenemos el puntero de la leyenda del gráfico y lo situamos en visible. También colocamos la leyenda en la parte inferior del gráfico estableciendo su alineación en Qt::AlignBottom.

chart->legend()->setVisible(true);
chart->legend()->setAlignment(Qt::AlignBottom);

Por último, añadimos el gráfico a una vista.

createDefaultChartView(chart);

El gráfico está listo para ser mostrado.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.