In streamtube plots, attributes include
z, which set the coordinates of the vector field, and
w, which set the x, y, and z components of the vector field. Additionally, you can use
starts to determine the streamtube's starting position.
import plotly.graph_objects as go fig = go.Figure(data=go.Streamtube(x=[0, 0, 0], y=[0, 1, 2], z=[0, 0, 0], u=[0, 0, 0], v=[1, 1, 1], w=[0, 0, 0])) fig.show()
Starting Position and Segments¶
By default, streamlines are initialized in the x-z plane of minimal y value. You can change this behaviour by providing directly the starting points of streamtubes.
import plotly.graph_objects as go import pandas as pd df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/streamtube-wind.csv').drop(['Unnamed: 0'],axis=1) fig = go.Figure(data=go.Streamtube( x = df['x'], y = df['y'], z = df['z'], u = df['u'], v = df['v'], w = df['w'], starts = dict( x =  * 16, y = [20,30,40,50] * 4, z = [0,0,0,0,5,5,5,5,10,10,10,10,15,15,15,15] ), sizeref = 0.3, colorscale = 'Portland', showscale = False, maxdisplayed = 3000 )) fig.update_layout( scene = dict( aspectratio = dict( x = 2, y = 1, z = 0.3 ) ), margin = dict( t = 20, b = 20, l = 20, r = 20 ) ) fig.show()