Creación de gráficos de dispersión
Nota: Esto forma parte del ejemplo de la Galería de Gráficos con Widgets.

Para crear gráficos de dispersión, se necesita una instancia de QScatterSeries. Aquí creamos una instancia de serie de dispersión, y establecemos el tipo y el ancho del contorno para los puntos de dispersión.
auto series0 = new QScatterSeries; series0->setName("scatter1"); series0->setMarkerShape(QScatterSeries::MarkerShapeCircle); series0->setMarkerSize(15.0); auto series1 = new QScatterSeries; series1->setName("scatter2"); series1->setMarkerShape(QScatterSeries::MarkerShapeRectangle); series1->setMarkerSize(20.0); auto series2 = new QScatterSeries; series2->setName("scatter3"); series2->setMarkerShape(QScatterSeries::MarkerShapeRectangle); series2->setMarkerSize(30.0);
Añadimos los datos a mostrar. Podemos utilizar la función miembro append() o utilizar el operador stream.
series0->append(0, 6); series0->append(2, 4); series0->append(3, 8); series0->append(7, 4); series0->append(10, 5); *series1 << QPointF(1, 1) << QPointF(3, 3) << QPointF(7, 6) << QPointF(8, 3) << QPointF(10, 2); *series2 << QPointF(1, 5) << QPointF(4, 6) << QPointF(6, 3) << QPointF(9, 5);
Podemos definir que el pincel de la serie de dispersión sea una imagen. Aquí la imagen es una estrella creada usando QPainterPath.
QPainterPath starPath; starPath.moveTo(28, 15); for (int i = 1; i < 5; ++i) { starPath.lineTo(14 + 14 * qCos(0.8 * i * M_PI), 15 + 14 * qSin(0.8 * i * M_PI)); } starPath.closeSubpath(); QImage star(30, 30, QImage::Format_ARGB32); star.fill(Qt::transparent); QPainter painter(&star); painter.setRenderHint(QPainter::Antialiasing); painter.setPen(QRgb(0xf6a625)); painter.setBrush(painter.pen().color()); painter.drawPath(starPath); series2->setBrush(star); series2->setPen(QColor(Qt::transparent));
Por último, activamos el antialiasing, definimos el título del gráfico y añadimos la serie de dispersión al gráfico. También desactivamos la sombra paralela, porque no quedaría bien en una aplicación en la que sólo se viera el gráfico.
auto chart = new QChart; chart->addSeries(series0); chart->addSeries(series1); chart->addSeries(series2); chart->setTitle("Simple Scatter Chart"); chart->createDefaultAxes(); chart->setDropShadowEnabled(false);
También podemos utilizar los puntos de dispersión como marcadores de leyenda.
chart->legend()->setMarkerShape(QLegend::MarkerShapeFromSeries);
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.