Repolode
epezent

epezent/implot

面向 Dear ImGui 的即时模式绘图库,适用于 C++ 应用中的实时与交互式图表。

Star
6,272
Fork
699
未关闭 Issue
121
最近提交
13天前

这是什么?

ImPlot 是一个基于 Dear ImGui 的 C++ 绘图库,采用同样的即时模式风格:每一帧在 BeginPlot 与 EndPlot 之间调用绘图函数,无需自行管理界面状态。它主要用于实时展示程序数据和交互式探索,而非生成可发表或导出的图表。

库内支持折线、阴影图、散点、柱状、误差线、茎叶图、阶梯图、饼图、热力图、直方图和图像等多种图元,并可在同一张图中混合使用。坐标轴支持线性与对数刻度、时间格式的 x 轴、多个 x/y 轴和子图,并提供缩放、平移、框选和查询范围等交互功能。除 ImGui 外没有其他依赖,公共接口也不使用 STL 容器。

数据可以是 float、double 或 8 至 64 位有符号、无符号整数,自定义结构体可通过 striding 或 getter 回调传入。集成时只需把源文件加入项目,并在创建 ImGui 上下文的同时创建 ImPlot 上下文。

核心功能

  • 01采用即时模式 API,与 ImGui 的 BeginX/EndX 用法一致
  • 02GPU 加速渲染,支持折线、柱状、热力图、直方图等多种图元
  • 03支持线性与对数坐标、时间格式 x 轴以及多个 x/y 轴
  • 04支持缩放、平移、框选和持久化查询范围等交互操作
  • 05默认跟随当前 ImGui 主题配色,也可完全自定义样式

适用场景

  • 在 C++ 桌面工具中实时展示传感器或遥测数据
  • 为基于 Dear ImGui 的调试或监控面板添加图表
  • 借助缩放与范围选择探索信号或时间序列数据

快速上手

  1. 1

    如果还没有 Dear ImGui 环境,先搭建一个

  2. 2

    将 implot.h、implot_internal.h、implot.cpp、implot_items.cpp 添加到项目源码中(或通过 vcpkg 安装)

  3. 3

    使用 vcpkg 安装 ImPlot

    ./vcpkg install implot
  4. 4

    在创建 ImGuiContext 的同时创建 ImPlotContext

使用前须知

  • 不适合出版级图表,也不支持将图表导出为图片文件。
  • Dear ImGui 默认使用 16 位索引,因此热力图等高密度图表需要修改配置或渲染器支持。

收录于专题

标签

常见问题

implot 是什么?
面向 Dear ImGui 的即时模式绘图库,适用于 C++ 应用中的实时与交互式图表。 ImPlot 是一个基于 Dear ImGui 的 C++ 绘图库,采用同样的即时模式风格:每一帧在 BeginPlot 与 EndPlot 之间调用绘图函数,无需自行管理界面状态。它主要用于实时展示程序数据和交互式探索,而非生成可发表或导出的图表。
implot 可以免费使用吗?用的什么许可证?
implot 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
implot 还在维护吗?
活跃维护中。implot 最近一次提交是在 2026年10月25日。
implot 适合用来做什么?
在 C++ 桌面工具中实时展示传感器或遥测数据 为基于 Dear ImGui 的调试或监控面板添加图表 借助缩放与范围选择探索信号或时间序列数据
implot 怎么安装和运行?
如果还没有 Dear ImGui 环境,先搭建一个 将 implot.h、implot_internal.h、implot.cpp、implot_items.cpp 添加到项目源码中(或通过 vcpkg 安装) 使用 vcpkg 安装 ImPlot: ./vcpkg install implot 在创建 ImGuiContext 的同时创建 ImPlotContext
在哪里获取 implot?
源代码和安装说明在 GitHub 上:https://github.com/epezent/implot

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目