散点图

Scatter Chart 散点图

散点图用于观察两个变量之间的分布关系,适合相关性分析、聚类观察、异常点识别和样本分布展示。

基类与类图

QOpenGLWidget
  └─ UIGQChartBase
      └─ UIGQScatterChart + IUIGQWidgetBase

数据结构

struct UIGQScatterChartSeries
{
    QString name;
    QVector<QPointF> points;
    QColor color;
    bool visible = true;
    qreal symbolSize = 8.0;
};

常用方法

方法 说明 参数 返回值
setTitle(const QString& title) 设置标题。 title:标题文本。 void
getTitle() 读取标题。 无。 QString
setSeries(const QVector<UIGQScatterChartSeries>& series) 设置散点序列。 series:散点序列数组。 void
getSeries() 读取散点序列。 无。 QVector<UIGQScatterChartSeries>
clearSeries() 清空所有序列。 无。 void
setSeriesVisible(int index, bool visible) 控制指定序列显示或隐藏。 index:序列索引;visible:是否显示。 void
isSeriesVisible(int index) 判断指定序列是否显示。 index:序列索引。 bool
setTooltipMode(UIGQChartTooltipMode mode) 设置 tooltip 模式。 mode:tooltip 模式枚举。 void
getTooltipMode() 读取 tooltip 模式。 无。 UIGQChartTooltipMode
setTooltipVisible(bool visible) 设置 tooltip 是否显示。 visible:是否显示。 void
getTooltipVisible() 读取 tooltip 显示状态。 无。 bool
setHoverEnabled(bool enabled) 开启或关闭 hover 交互。 enabled:是否启用 hover。 void
getHoverEnabled() 读取 hover 交互状态。 无。 bool
initDemoData() 初始化演示数据。 无。 void

基础调用

using namespace UIGQtLib;

auto* chart = new UIGQScatterChart(parent);
chart->setTitle("Validation Samples");

QVector<UIGQScatterChartSeries> series;

UIGQScatterChartSeries passed;
passed.name = "Passed";
passed.points = {QPointF(12, 80), QPointF(18, 88), QPointF(25, 91)};
passed.color = QColor(62, 180, 98);
passed.symbolSize = 8.0;
series.append(passed);

UIGQScatterChartSeries warning;
warning.name = "Warning";
warning.points = {QPointF(10, 52), QPointF(20, 58), QPointF(28, 61)};
warning.color = QColor(232, 148, 54);
warning.symbolSize = 10.0;
series.append(warning);

chart->setSeries(series);
chart->setThemePreset(kChartThemeShine);
chart->setTooltipMode(kChartTooltipItem);
chart->setTooltipVisible(true);
chart->setHoverEnabled(true);

调用说明:

  • points 中的 QPointF(x, y) 表示散点坐标。
  • 每个 UIGQScatterChartSeries 表示一个分组。
  • symbolSize 控制散点半径大小,适合强调不同分组。
  • setSeriesVisible(...) 可用于图例筛选或用户切换分组。