目录一、核心定位与优势1. 替代关系2. 关键升级3. 模块引入二、2D 图表Qt Graphs 2D1. 支持类型全覆盖 QtCharts2. 核心类C3. 2D 特点三、3D 图表Qt Graphs 3D1. 支持类型3D 全覆盖2. 核心类C Widget 版3. 3D 关键技术性能核心4. 3D 交互能力四、2D vs 3D 架构对比五、代码示例极简 2D 折线 3D 曲面1. 2D 折线图C2. 3D 曲面图QML六、迁移与选型建议1. 从 QtCharts 迁移2. 选型决策Qt Graphs 是 Qt 6.8 推出的新一代统一可视化模块合并了旧的 QtCharts2D与 QtDataVisualization3D底层基于QRhi/Qt Quick 3D 硬件加速主打高性能 2D3D、统一架构、Widget/QML 双支持Qt。一、核心定位与优势1. 替代关系取代Qt Charts2D已弃用Qt DataVisualization3D适用Qt 6.8未来官方主推Qt5 不可用Qt2. 关键升级✅2D3D 统一模块一套库搞定所有图表✅硬件加速QRhi支持 DirectX/Metal/OpenGL/Vulkan大数据更流畅✅性能飞跃2D 十万点、3D 百万级数据流畅渲染✅Widget QML 双接口兼顾传统桌面与现代触控 UI✅嵌入式友好可单独编译仅 2D 或仅 3D减小体积Qt3. 模块引入qmake# qmake QT graphscmake# CMake find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(xxx PRIVATE Qt6::Graphs)二、2D 图表Qt Graphs 2D1. 支持类型全覆盖 QtCharts折线图QLineSeries/LineSeriesQML曲线图QSplineSeries/SplineSeries柱状图QBarSeriesQBarSet/BarSeries饼图 / 甜甜圈图QPieSeriesQPieSlice/PieSeries面积图QAreaSeries/AreaSeries散点图QScatterSeries/ScatterSeriesQt2. 核心类CQGraph图表容器替代 QChartGraphsView2D 视图替代 QChartView坐标轴QValueAxis数值、QBarCategoryAxis类别、QDateTimeAxis时间3. 2D 特点渲染更快无 GraphicsView 开销直接 QRhi 渲染交互增强缩放、平移、hover 提示、选点主题系统内置明暗主题支持自定义配色无缝集成 QML可与 Qt Quick 控件混合使用Qt三、3D 图表Qt Graphs 3D1. 支持类型3D 全覆盖3D 柱状图Q3DBars/Bars3DSeries3D 散点图Q3DScatter/Scatter3DSeries3D 曲面图Q3DSurface/Surface3DSeries支持高度图、热力图Qt2. 核心类C Widget 版Q3DBarsWidgetItem3D 柱状图Q3DScatterWidgetItem3D 散点图Q3DSurfaceWidgetItem3D 曲面图Q3DGraphsWidget3D 容器嵌入 Widget 界面Qt3. 3D 关键技术性能核心GPU 实例化渲染百万级 3D 散点 / 柱子一次 Draw Call 完成CPU 占用极低顶点着色器位移曲面图高度数据用纹理传输GPU 实时计算顶点CPU 零负担材质与光照支持自定义材质、透明度、光照模型、阴影相机控制自由旋转、缩放、平移支持正交 / 透视投影Qt4. 3D 交互能力鼠标拖拽旋转、滚轮缩放、右键平移点击选中数据项、显示详情3D 数据 2D 切片查看便于分析Qt四、2D vs 3D 架构对比表格维度Qt Graphs 2DQt Graphs 3D底层渲染QRhi2D 硬件加速Qt Quick 3D QRhi数据量十万级流畅百万级流畅实例化适用场景报表、仪表盘、实时曲线科学可视化、地形、3D 数据探索集成方式Widget/Quick 均可优先 QMLWidget 有封装典型控件GraphsViewQ3DGraphsWidget五、代码示例极简 2D 折线 3D 曲面1. 2D 折线图Ccpp运行#include QApplication #include QMainWindow #include QtGraphs using namespace QtGraphs; int main(int argc, char *argv[]) { QApplication a(argc, argv); QMainWindow w; w.resize(800, 600); // 2D 折线序列 QLineSeries *series new QLineSeries(); series-append(0, 10); series-append(1, 20); series-append(2, 15); // 图表容器 QGraph *graph new QGraph(); graph-addSeries(series); graph-setTitle(Qt Graphs 2D 折线图); graph-createDefaultAxes(); // 视图 GraphsView *view new GraphsView(graph); w.setCentralWidget(view); w.show(); return a.exec(); }2. 3D 曲面图QMLqmlimport QtQuick.Window 2.15 import QtGraphs 6.8 Window { width: 800; height: 600; visible: true Surface3D { anchors.fill: parent title: Qt Graphs 3D 曲面图 Surface3DSeries { heightMap: TextureSource { source: heightmap.png } meshResolution: Qt.size(100, 100) } } }六、迁移与选型建议1. 从 QtCharts 迁移类名替换QChart→QGraphQChartView→GraphsView序列类名基本不变QLineSeries等命名空间改为QtGraphs渲染性能显著提升大数据场景必迁Qt2. 选型决策新项目Qt6优先 Qt Graphs2D3D 统一、性能强、官方维护仅 2D 且简单可继续用 QtCharts但已弃用实时大数据 / 工业监控QCustomPlot2D 性能极致3D 科学可视化Qt Graphs 3D硬件加速、交互强