面向 .NET 的开源交互式绘图库,可用于 GUI、控制台、Blazor 和 Notebook 中的图表展示。
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
如果还没有 Dear ImGui 环境,先搭建一个
- 2
将 implot.h、implot_internal.h、implot.cpp、implot_items.cpp 添加到项目源码中(或通过 vcpkg 安装)
- 3
使用 vcpkg 安装 ImPlot
./vcpkg install implot - 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 数据每日更新。
相关项目
一种高层 JSON 声明式语法,用于构建交互式图表,并编译为完整的 Vega 规范。
基于 Dear ImGui 的 Python GUI 工具包,GPU 渲染,内置绘图、节点编辑器和绘制接口。
一个易于使用的 Rust 即时模式 GUI 库,可同时运行在 Web 和原生平台,也可嵌入游戏引擎。
用 Python 构建可在现代浏览器中交互的数据可视化图表、仪表盘和数据应用。
一个 Java 数据框库,用于加载、清洗、转换和汇总表格数据,并提供基于 Plotly 的图表绘制。