JuliaPlots/Plots.jl

[FR] Allow plotting function data in quiver()

Open

#4,890 opened on Feb 19, 2024

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Julia (1,943 stars) (381 forks)batch import
enhancementgood first issue

Description

The easiest mathematical way to define a 2D vector field is as a function with two arguments that outputs a 2 item vector

julia> vecField(x,y) = [x^2, y+1x]

Unfortunately, quiver can't plot this

julia> quiver(vecField)  
ERROR: vecField is not a Function, or is not defined at any of the values [-5.0, -1.0, 0.0, 0.01]

It'd be pretty neat if we could add some recipie that evaluates a 2d function given to quiver at reasonable points, making plotting a vector field into a nice, neat one-liner, instead of the current solution which is somewhat more involved. Such a recipe would also probably want to apply scaling to arrows, perhaps by dividing all outputs by the norm of the largest output.

Contributor guide