https://github.com/lofcz/mathplotter
Poor man's Desmos
https://github.com/lofcz/mathplotter
functions math plotting
Last synced: 5 months ago
JSON representation
Poor man's Desmos
- Host: GitHub
- URL: https://github.com/lofcz/mathplotter
- Owner: lofcz
- License: mit
- Created: 2024-09-15T07:31:31.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-09-17T03:09:40.000Z (over 1 year ago)
- Last Synced: 2025-09-13T09:23:13.723Z (6 months ago)
- Topics: functions, math, plotting
- Language: JavaScript
- Homepage:
- Size: 207 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MathPlotter
Poor man's Desmos.
## Features
- Multiple plots.
- Implicit functions.
- Inequalities.
- Pan & zoom.
- Adaptive sampling.
- Automatic parameters, value & min/max sliders.
- Over 50 functions supported, courtesy of `math.js`.
- Straightforward API.
## Getting started
MathPlotter is distributed as `umd` package. Load `jsxgraphcore.js`, `math.js` and `plotter.js`:
```html
```
Setup HTML:
```html
```
Instantiate `MathPlotter`:
```js
var plotter = new MathPlotter("plotterElement");
plotter.init();
```
## Config
Pass config options as a second argument to the constructor of `MathPlotter`:
```js
var plotter = new MathPlotter("plotterElement", {
// config options
});
```
## Instance API
Methods in the following table can be called on the `plotter` instance from the examples above.
| Function | Description | Call
|--------|-------|-------|
| `plot` | Plots one or more functions | One:`plot("x")'`
Multiple:`plot("a * sin(b * x) + c;a * cos(b * x) + c;tanh(x);(x^2 + y^2 – 1)^3 = x^2 y^3")`
Param hints:`plot([{fn: "a * sin(b * x) + c", pars: [{ name: "a", value: 5 }, { name: "c", value: 1 }]}, {fn: "x + 2"}])` |
| `save` | Saves and downloads the plot in `svg` format. | `save()` |
| `saveBitmap` | Saves and downloads the plot in `jpg`/`png` format. | `await saveBitmap("jpeg")` |
| `destroy` | Removes all event handlers, destroys elements created by MathPlotter, and frees memory. | `destroy()` |
## Static API
Unlike the methods above, the following methods are called on `MathPlotter` statically.
| Function | Description | Call
|--------|-------|-------|
| `Fire` | Creates a headless instance, plots the given expressions, and destroys the instance immediately. Returns `svg` screenshot of the plot. | `Fire("ln(x)")` |
| `FireBitmap` | Creates a headless instance, plots the given expressions, and destroys the instance immediately. Returns `jpeg`/`png` screenshot of the plot. | `await FireBitmap("ln(x)", "jpeg")` |
## Build
To build `plotter.min.js` & `plotter.css`:
```js
npm i & npm run build
```
To start the dev server:
```js
npm run dev
```
To release a new version:
```js
npm run release:minor
```
## Screenshots
