{"id":28193145,"url":"https://github.com/tianzhuqiao/bsmplot","last_synced_at":"2025-10-04T02:04:56.454Z","repository":{"id":222004841,"uuid":"755997737","full_name":"tianzhuqiao/bsmplot","owner":"tianzhuqiao","description":"A cross-platform tool to visualize time series.","archived":false,"fork":false,"pushed_at":"2025-04-04T23:32:18.000Z","size":8281,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-11T11:48:28.919Z","etag":null,"topics":["chart","csv","mat","plot","time-series","ulog","vcd","wxpython"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tianzhuqiao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-11T17:34:52.000Z","updated_at":"2025-04-04T23:31:58.000Z","dependencies_parsed_at":"2024-02-29T06:24:14.806Z","dependency_job_id":"07f705b1-eedb-4931-8e10-8f924aded470","html_url":"https://github.com/tianzhuqiao/bsmplot","commit_stats":null,"previous_names":["tianzhuqiao/bsmplot"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tianzhuqiao%2Fbsmplot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tianzhuqiao%2Fbsmplot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tianzhuqiao%2Fbsmplot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tianzhuqiao%2Fbsmplot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tianzhuqiao","download_url":"https://codeload.github.com/tianzhuqiao/bsmplot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254527087,"owners_count":22085920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chart","csv","mat","plot","time-series","ulog","vcd","wxpython"],"created_at":"2025-05-16T12:16:44.988Z","updated_at":"2025-10-04T02:04:51.373Z","avatar_url":"https://github.com/tianzhuqiao.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bsmplot\n**bsmplot** is a cross-platform tool to visualize time series based on [Matplotlib](https://matplotlib.org/) and [wxPython](https://wxpython.org/).\n\n\u003cimg src=\"https://github.com/tianzhuqiao/bsmplot/blob/main/docs/bsmplot.png?raw=true\" width=\"865\"\u003e\u003c/img\u003e\n\n## Installation\n```\n$ pip install bsmplot\n```\n\nTo start from terminal\n```\n$ bsmplot\n```\n\nAdd shortcut to desktop / Start Menu\n```\n$ bsmplot --init\n```\n\n##  Supported data source\n- VCD (value change dump)\n- PX4 [ulog](https://docs.px4.io/main/en/dev_log/ulog_file_format.html)\n- CSV\n- Matlab (.mat)\n- [HDF5](https://docs.h5py.org/en/stable/)\n- [netCDF](https://unidata.github.io/netcdf4-python/)\n- [ZMQ](https://zeromq.org/) subscriber. **json** format is supported by defaut. If corresponding package is installed, the following format is also supported\n    - [bson](https://github.com/py-bson/bson)\n    - [cbor](https://github.com/agronholm/cbor2)\n    - [msgpack](https://msgpack.org/)\n\n## Plot the data\nTo plot the data, simply double click a signal. It will plot the signal on the current figure window (or create one if there is no figure window then plot).\n\n\u003cimg src=\"https://github.com/tianzhuqiao/bsmplot/blob/main/docs/plot.png?raw=true\" width=\"600\"\u003e\u003c/img\u003e\n\nYou can also drag the signal to the figure window.\n\nIf the data has timestamp field (e.g., ulog), it will be used as x-axis data; otherwise (e.g., csv), the x-axis will be the index by default. And you can also set some signal as x-axis data, which will be shown in **bold**.\n\n\u003cimg src=\"https://github.com/tianzhuqiao/bsmplot/blob/main/docs/plot3.png?raw=true\" width=\"600\"\u003e\u003c/img\u003e\n\nMany operations of the figure can be done via the context menu (right click), and the toolbar on top. For example, to create a subplot with shared x-axis,\n\n\u003cimg src=\"https://github.com/tianzhuqiao/bsmplot/blob/main/docs/plot2.png?raw=true\" width=\"600\"\u003e\u003c/img\u003e\n\nIf the signal has 2d/3d data, it will be shown in [glsurface](https://github.com/tianzhuqiao/glsurface) window. For 3d data, the 1st dimension will be treated as time axis.\n\u003cimg src=\"https://github.com/tianzhuqiao/bsmplot/blob/main/docs/glsurface.png?raw=true\" width=\"600\"\u003e\u003c/img\u003e\n\n## Process the data\n\nTo process the data, right click the signal, and select the function to run. Following functions are pre-defined\n\n1. Quaternion to Yaw/Pitch/Roll\n2. Radian to degree\n3. Degree to Radian\n4. Moving average\n\n\u003cimg src=\"https://github.com/tianzhuqiao/bsmplot/blob/main/docs/quat2angle.png?raw=true\" width=\"600\"\u003e\u003c/img\u003e\n\nIf you are familiar with python code, you can add your own functions. You basically need to define the **inputs**, **equation**, and **outputs**. The number of **outputs** must match the actual ones returned from the **equation**.\n\n\u003cimg src=\"https://github.com/tianzhuqiao/bsmplot/blob/main/docs/addfunc.png?raw=true\" width=\"400\"\u003e\u003c/img\u003e\n\nIf the processing is too complicated, you can also export the data to shell: right click -\u003e Export to shell (or Export to shell with timestamp if available)\n\n\u003cimg src=\"https://github.com/tianzhuqiao/bsmplot/blob/main/docs/exportdata.png?raw=true\" width=\"600\"\u003e\u003c/img\u003e\n\nThen in the shell, you can access the exported data, and run any python command.\n\n\u003cimg src=\"https://github.com/tianzhuqiao/bsmplot/blob/main/docs/exportdata2.png?raw=true\" width=\"600\"\u003e\u003c/img\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftianzhuqiao%2Fbsmplot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftianzhuqiao%2Fbsmplot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftianzhuqiao%2Fbsmplot/lists"}