plotly / plotly.js

Open-source JavaScript charting library behind Plotly and Dash
https://plotly.com/javascript/
MIT License
17.08k stars 1.87k forks source link

add streamline plots #1435

Open highfieldjames opened 7 years ago

highfieldjames commented 7 years ago

Streamline plots are implemented in the Python and Matlab distributions of Plotly. Is the implementation of this plot type in Plotly.js on the current roadmap? If not, please consider this a feature request.

henryJack commented 7 years ago

Streamline plots are really useful for displaying scalar and vector fields, is there any update on this? It would be an awesome feature!

jackparmer commented 7 years ago

3D streamtubes and cone plots are currently development in plotly.js, here is a preview:

image

image

If your company is available cosponsor a 2d effort, please reach out

henryJack commented 7 years ago

These look absolutely glorious. Can't wait for the full release

jackparmer commented 4 years ago

The 3d versions were completed several years ago, sorry this issue was never updated:

2d Plotly streamline plots currently still only exist for Python. There are no plans currently for a native plotly.js 2d streamline trace type.

asgolovin commented 1 year ago

Hey, any news on this? :) We need a js version of streamline plots for a project I'm working on, so I will work on implementing at least a script to compute and draw streamlines using existing scatter plots. The optimistic plan would be to create a new trace type and open a PR, but let's see how the first step goes and where it leaves my ambitions. 😅 Do I understand it correctly that it is possible to add a trace type which internally uses existing drawing functions like scatter? If so, can someone point me to an example of a trace type which does something similar? :)

For the algorithm, I was looking at the Matplotlib implementation which uses the second-order Heun's method with an adaptive step size. They argue in the comments that the Heun's method is preferable in this case to the non-adaptive RK4 method which is used in the plotly's python implementation. In the hypothetical case that this work does lead to a PR - do you guys have any strong opinions on the matter?