[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-95929":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":8,"totalLinesOfCode":8,"stars":11,"forks":12,"watchers":13,"openIssues":13,"contributorsCount":8,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":13,"stars30d":13,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":14,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":15,"fork":15,"defaultBranch":16,"hasWiki":15,"hasPages":15,"topics":8,"createdAt":8,"pushedAt":8,"updatedAt":17,"readmeContent":18,"aiSummary":19,"trendingCount":13,"starSnapshotCount":13,"syncStatus":20,"lastSyncTime":8,"discoverSource":21},95929,"PlotJuggler","PlotJuggler\u002FPlotJuggler","The Time Series Visualization Tool that you deserve.",null,"https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler","C++",6150,819,0,39.74,false,"main","2026-09-21 02:04:29","# ALERT: do NOT visit plotjuggler.com\n## That is probably a Malware \u002F Phishing page impersonating us.\nWe are taking urgent actions to brint it down.\n\n\n![PlotJuggler](docs\u002Fplotjuggler3_banner.svg)\n\n[![windows](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fwindows.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fwindows.yaml)\n[![ubuntu](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fubuntu.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fubuntu.yaml)\n[![macos](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fmacos.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fmacos.yaml)\n[![ros2-humble](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fros2-humble.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fros2-humble.yaml)\n[![ros2-jazzy](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fros2-jazzy.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fros2-jazzy.yaml)\n[![ros2-rolling](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fros2-rolling.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Factions\u002Fworkflows\u002Fros2-rolling.yaml)\n[![Tweet](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttp\u002Fshields.io.svg?style=social)](https:\u002F\u002Ftwitter.com\u002Fintent\u002Ftweet?text=I%20use%20PlotJuggler%20and%20it%20is%20amazing%0D%0A&url=https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler&via=facontidavide&hashtags=dataviz,plotjuggler,GoROS,PX4)\n\n## Gold Sponsor:\n[![Greenzie](docs\u002Fsponsor_greenzie.png)](https:\u002F\u002Fwww.greenzie.com\u002F)\n[![Intermodalics](docs\u002Fsponsor_intermodalics.png)](https:\u002F\u002Fwww.intermodalics.ai\u002F)\n[![Greenzie](docs\u002Fsponsor_ark.png)](https:\u002F\u002Farkelectron.com\u002F)\n\n# PlotJuggler 3.17\n\nPlotJuggler is a tool to visualize time series that is **fast**, **powerful** and  **intuitive**.\n\nNoteworthy features:\n\n- Simple Drag & Drop user interface.\n- Load __data from file__.\n- Connect to live __streaming__ of data.\n- Save the visualization layout and configurations to reuse them later.\n- Fast **OpenGL** visualization.\n- Can handle **thousands** of timeseries and **millions** of data points.\n- Transform your data using a simple editor: derivative, moving average, integral, etc…\n- PlotJuggler can be easily extended using __plugins__.\n\n![PlotJuggler](docs\u002Fplotjuggler3.gif)\n\n\n## Data sources (file and streaming)\n\n- Load CSV files.\n- Load [ULog](https:\u002F\u002Fdocs.px4.io\u002Fmain\u002Fen\u002Fdev_log\u002Fulog_file_format) (PX4).\n- Subscribe to many different streaming sources: MQTT, WebSockets, ZeroMQ, UDP, etc.\n- Understand data formats such as JSON, CBOR, BSON, Message Pack, etc.\n- Well integrated with [ROS](https:\u002F\u002Fwww.ros.org\u002F): open *rosbags* and\u002For subscribe to ROS *topics* (both ROS1 and ROS2).\n- Supports the [Lab Streaming Layer](https:\u002F\u002Flabstreaminglayer.readthedocs.io\u002Finfo\u002Fintro.html), that is used by [many devices](https:\u002F\u002Flabstreaminglayer.readthedocs.io\u002Finfo\u002Fsupported_devices.html).\n- Easily add your custom data source and\u002For formats...\n\n![](docs\u002Fdata_sources.svg)\n\n## Transform and analyze your data\nPlotJuggler makes it easy to visualize data but also to analyze it.\nYou can manipulate your time series using a simple and extendable Transform Editor.\n\n![](docs\u002Ffunction_editor.png)\n\nAlternatively, you may use the Custom Function Editor, which allows you to create Multi-input \u002F Single-output functions\nusing a scripting language based on [Lua](https:\u002F\u002Fwww.tutorialspoint.com\u002Flua\u002Findex.htm).\n\nIf you are not familiar with Lua, don't be afraid, you won't need more than 5 minutes to learn it ;)\n\n![](docs\u002Fcustom_editor.png)\n\n## Tutorials\n\nTo learn how to use PlotJuggler, check the tutorials here:\n\n| Tutorial 1   |  Tutorial 2 | Tutorial 3 |\n:-------------------------:|:-------------------------:|:-------------------------:\n| [![](docs\u002Ftutorial_1.png)](https:\u002F\u002Fslides.com\u002Fdavidefaconti\u002Fintroduction-to-plotjuggler) | [![](docs\u002Ftutorial_2.png)](https:\u002F\u002Fslides.com\u002Fdavidefaconti\u002Fplotjuggler-data) | [![](docs\u002Ftutorial_3.png)](https:\u002F\u002Fslides.com\u002Fdavidefaconti\u002Fplotjuggler-transforms) |\n\n## Supported plugins\n\nSome plugins can be found in a different repository. The individual README files\n*should* include all the information needed to compile and use the plugin.\n\nPlease submit specific issues, Pull Requests and questions on the related Github repository:\n\n- [MQTT DataStreamer](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002Fplotjuggler-mqtt).\n- [Lab Streaming Layer DataStreamer](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002Fplotjuggler-lsl).\n- [ROS plugins](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002Fplotjuggler-ros-plugins).\n- [CAN .dbg DataLoader](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002Fplotjuggler-CAN-dbs).\n\nIf you want a simple example to learn how to write your own plugins, have a look at\n[PlotJuggler\u002Fplotjuggler-sample-plugins](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002Fplotjuggler-sample-plugins)\n\n# Installation\n\nYou can download the latest ready to use binaries from the [Release page](https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Freleases).\n\n\u003Cdiv align=\"center\">\n\n| 🐧 Linux | 🍎 macOS | 🪟 Windows | 📦 Debian |\n|:--------:|:--------:|:----------:|:---------:|\n| **AppImage** | **Installer** | **Installer** | **Packages** |\n| x86 \u002F arm64 | x86 \u002F arm64 | x64 | bookworm, trixie |\n\n\u003C\u002Fdiv>\n\n## Snap (recommended in Ubuntu, to ROS users too)\n\nThe snap contains a version of PlotJuggler that works (with some limitations) with ROS2.\n\n![Get it from the Snap Store](https:\u002F\u002Fsnapcraft.io\u002Fstatic\u002Fimages\u002Fbadges\u002Fen\u002Fsnap-store-black.svg)\n\nTo install it in Ubuntu, run:\n\n```\nsudo snap install plotjuggler\n```\n\n### Debian packages for ROS User\n\nInstall the ROS packages with:\n\n```\nsudo apt install ros-$ROS_DISTRO-plotjuggler-ros\n```\nTo launch PlotJuggler, use the command:\n\n```\nros2 run plotjuggler plotjuggler\n```\n\nROS plugins are available in a separate repository: https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002Fplotjuggler-ros-plugins\n\nPlease take a look at the instructions in that repository if you want to compile PJ and its ROS plugins from source.\n\n\n## Compile from source\n\nYou can find the detailed instructions here: [COMPILE.md](COMPILE.md).\n\n# Sponsorship and commercial support\n\nPlotJuggler required a lot of work to develop and maintain; my goal is to build the most\nintuitive and powerful tool to visualize data and timeseries.\n\nIf you find PlotJuggler useful, consider donating [PayPal](https:\u002F\u002Fwww.paypal.me\u002Ffacontidavide) or becoming a\n[Github Sponsor](https:\u002F\u002Fgithub.com\u002Fsponsors\u002Ffacontidavide).\n\nIf you need to extend any of the functionalities of PlotJuggler to cover a specific\nneed or to parse your custom data formats, you can receive commercial\nsupport from the main author, [Davide Faconti](mailto:davide.faconti@gmail.com).\n\n# License\n\nPlotJuggler is released under the [Mozilla Public License Version 2.0](LICENSE.md),\nwhich allows users to develop closed-source plugins.\n\nPlease note that some third-party dependencies (including Qt) use the\n**GNU Lesser General Public License**.\n\n# Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=PlotJuggler\u002FPlotJuggler&type=Date)](https:\u002F\u002Fstar-history.com\u002F#PlotJuggler\u002FPlotJuggler&Date)\n\n# Contributors\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FPlotJuggler\u002FPlotJuggler\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Fcontrib.rocks\u002Fimage?repo=PlotJuggler\u002FPlotJuggler\" \u002F>\n\u003C\u002Fa>\n","PlotJuggler 是一款高性能时间序列可视化工具，专为实时分析与离线回放海量时序数据设计。它支持拖拽式交互、多格式文件导入（CSV、ULog、ROS Bag）、多种流式数据源接入（MQTT、WebSocket、ZeroMQ、UDP、LSL、ROS1\u002FROS2），内置数据变换功能（如微分、积分、滑动平均），并基于 OpenGL 实现毫秒级渲染，可稳定处理数千万数据点。适用于机器人开发、嵌入式系统调试、飞控日志分析、生物信号监测及工业传感器数据诊断等需要高频、多通道时序可视化验证的场景。",2,"trending"]