plotly / plotly/plotly.py

Add Support for Velocity Arrows in Scatter 3D Graphs

Open
#4,901 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature P3
Dominant language
Python
Stars
18.8k
Forks
2.8k
Avg merge
16h 26m
Merged PRs (30d)
21

Description

Original issue description:

I propose adding a feature to the scatter and scatter3d graph types in Plotly to support velocity arrows. This feature would allow users to display directional arrows, enhancing data visualization for applications that involve vector fields, velocities, forces, or any data represented by direction and magnitude.

Update 31 Aug 2026:

  • 2D quiver now supported with go.Quiver() (as of v7.0.0)
  • Our answer for 3D quiver is go.Cone(), but it has limitations:

For 3D though, Cone() isn't really an arrow. To get a velocity vector you have to combine a Cone (head) with a Scatter3d line (shaft) and keep them in sync manually. The bigger issue is that cone size is in data units while line width is in pixels — so on zoom the head and shaft drift out of proportion (head swallows the shaft, or disappears entirely).

What I was after is the 3D analogue of Quiver: takes x, y, z, u, v, w, draws shaft + attached head, with the head sized in pixels so it stays legible under zoom and rotation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the existing go.Quiver() and go.Cone() entry points and the scatter3d graph type. Define how a 3D analogue should accept x, y, z, u, v, w and keep its shaft and arrowhead attached and legible during zoom and rotation; done means the feature is implemented and its behavior is covered by appropriate tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
plotly, python
Domain
data-visualization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.