{"id":18488450,"url":"https://github.com/ngfelixl/nodeplotlib","last_synced_at":"2025-10-23T22:01:40.379Z","repository":{"id":33012193,"uuid":"149402291","full_name":"ngfelixl/nodeplotlib","owner":"ngfelixl","description":"NodeJS plotting library for JavaScript and TypeScript. On top of plotly.js. Inspired by matplotlib.","archived":false,"fork":false,"pushed_at":"2023-10-18T01:52:16.000Z","size":7284,"stargazers_count":202,"open_issues_count":18,"forks_count":25,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-28T16:06:27.944Z","etag":null,"topics":["charts","javascript","matplotlib","nodejs","plot","plotly","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/nodeplotlib","language":"TypeScript","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/ngfelixl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-09-19T06:26:02.000Z","updated_at":"2025-03-05T17:40:14.000Z","dependencies_parsed_at":"2023-12-16T05:04:28.293Z","dependency_job_id":"0dd7b2b3-a5ce-45e7-b74e-f6d3b72da41b","html_url":"https://github.com/ngfelixl/nodeplotlib","commit_stats":{"total_commits":148,"total_committers":7,"mean_commits":"21.142857142857142","dds":0.08783783783783783,"last_synced_commit":"3f7c89b398a09f2d1d1e638197ed8c980e65c8a6"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngfelixl%2Fnodeplotlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngfelixl%2Fnodeplotlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngfelixl%2Fnodeplotlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ngfelixl%2Fnodeplotlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ngfelixl","download_url":"https://codeload.github.com/ngfelixl/nodeplotlib/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217175,"owners_count":20903009,"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":["charts","javascript","matplotlib","nodejs","plot","plotly","typescript"],"created_at":"2024-11-06T12:51:44.746Z","updated_at":"2025-10-23T22:01:40.246Z","avatar_url":"https://github.com/ngfelixl.png","language":"TypeScript","readme":"# \u003cimg src=\"./img/nodeplotlib_64x64.png\" width=\"22px\" height=\"22px\"\u003e NodePlotLib\n\n[![NodeJS CI](https://github.com/ngfelixl/nodeplotlib/workflows/Node.js%20CI/badge.svg)](https://github.com/ngfelixl/nodeplotlib/actions?query=workflow%3A%22Node.js+CI%22)\n[![npm](https://img.shields.io/npm/v/nodeplotlib?color=#00f800)](https://npmjs.com/package/nodeplotlib)\n[![npm](https://img.shields.io/npm/dt/nodeplotlib.svg)](https://npmjs.com/package/nodeplotlib)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)\n\n[![Animation (View on Github)](https://raw.githubusercontent.com/ngfelixl/nodeplotlib/master/img/animation-next.gif)](https://raw.githubusercontent.com/ngfelixl/nodeplotlib/master/img/animation-next.gif)\n\nThis readme contains all the necessary information for the development.\n\n## [Go to the user docs](./libs/nodeplotlib/README.md)\n\n## Installation\n\n### Npmjs\n\n```sh\nnpm install nodeplotlib\n# or\nyarn add nodeplotlib\n```\n\n### Repository\n\nCreate a fork of this repository. Then clone it\n\n```\ngit clone https://github.com/{{USERNAME}}/nodeplotlib\ncd nodeplotlib\nnpm i\n```\n\n## Serving the app for development\n\nServing in development mode prevents the app to open a new browser window on changes.\nYou can open the app at the specified port, e.g. `http://localhost:4201`.\n\n```\nnpx nx run web:build -- --watch\n\nNODEPLOTLIB_PORT=4201 npx nx run dev-server:serve\n// or on Windows cmd\nset \"NODEPLOTLIB_PORT=4201\" \u0026\u0026 npx nx run dev-server:serve\n// or on Windows Powershell\n$env:NODEPLOTLIB_PORT = \"4201\" ; npx nx run dev-server:serve\n```\n\n## Build for production\n\nTo build for production three steps are necessary. Build the web app, build\nthe library, and finally copy the web app files to the libraries dist folder.\nAll steps are bundled in the following script:\n\n```\nnpm run build:prod\n```\n\nAll dist files are located in **/dist/libs/nodeplotlib**\n\n## Release Guide\n\nThis is a note for maintainers only. There are several steps to follow before you\ncan publish the new version to npm.\n\n1. Bump the version number using semver. Use \"rc\" for release candidates as the _preid_, e.g.\n   `1.0.0-rc1`. Update the version number in the root [package.json](./package.json)\n   and in the libs [package.json](./libs/nodeplotlib/package.json).\n2. If everything is committed and in place on \"master\" for non-release candidates,\n   or on \"release/...\" for release candidates. Create a tag with that version number,\n   e.g. `v1.0.0-rc1` or `v1.0.1`, and push it to the repository.\n3. Run `npm run build:prod`\n4. Navigate to **/dist/libs/nodeplotlib**\n5. Run `npm pack`\n6. Make sure to be logged in to npmjs. Then run\n   - `npm publish {{filename}}.tgz` or\n   - `npm publish {{filename}}.tgz --tag test` for release candidates.\n7. Create a release on Github for non-release cadidate versions.\n\n## Behind the scenes\n\nThe lib launches a webserver and opens new tabs for every plot located at\n`http://localhost:{{PORT}}`, where `PORT` is a free port determined by the express\nserver itself. At this address the Angular application will be served temporarily.\nThe server and the app set up a connection via socket.io. This way a realtime\ntransmission is possible.\n\n## Contributing\n\nContributions in all forms are welcome.\n\n## Contributors\n\n\u003ca href=\"https://github.com/ngfelixl\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/24190530\" title=\"ngfelixl\" width=\"100\" height=\"100\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/mitsos1os\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/8208733\" title=\"mitsos1os\" width=\"100\" height=\"100\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/medved-nsk\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/6310906\" title=\"medved-nsk\" width=\"100\" height=\"100\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Moumouls\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/27959372\" title=\"Moumouls\" width=\"100\" height=\"100\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/grgr-dkrk\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/40130327\" title=\"guruguru-dekiruko\" width=\"100\" height=\"100\"\u003e\u003c/a\u003e\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngfelixl%2Fnodeplotlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fngfelixl%2Fnodeplotlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fngfelixl%2Fnodeplotlib/lists"}