How to make 3D Line Plots
Plotly Studio: Transform any dataset into an interactive data application in minutes with AI. Sign up for early access now.
3D Line plot with Plotly Express¶In [1]:
import plotly.express as px df = px.data.gapminder().query("country=='Brazil'") fig = px.line_3d(df, x="gdpPercap", y="pop", z="year") fig.show()
In [2]:
import plotly.express as px df = px.data.gapminder().query("continent=='Europe'") fig = px.line_3d(df, x="gdpPercap", y="pop", z="year", color='country') fig.show()3D Line Plot of Brownian Motion¶
Here we represent a trajectory in 3D.
In [3]:
import plotly.graph_objects as go import pandas as pd import numpy as np rs = np.random.RandomState() rs.seed(0) def brownian_motion(T = 1, N = 100, mu = 0.1, sigma = 0.01, S0 = 20): dt = float(T)/N t = np.linspace(0, T, N) W = rs.standard_normal(size = N) W = np.cumsum(W)*np.sqrt(dt) # standard brownian motion X = (mu-0.5*sigma**2)*t + sigma*W S = S0*np.exp(X) # geometric brownian motion return S dates = pd.date_range('2012-01-01', '2013-02-22') T = (dates.max()-dates.min()).days / 365 N = dates.size start_price = 100 y = brownian_motion(T, N, sigma=0.1, S0=start_price) z = brownian_motion(T, N, sigma=0.1, S0=start_price) fig = go.Figure(data=go.Scatter3d( x=dates, y=y, z=z, marker=dict( size=4, color=z, colorscale='Viridis', ), line=dict( color='darkblue', width=2 ) )) fig.update_layout( width=800, height=700, autosize=False, scene=dict( camera=dict( up=dict( x=0, y=0, z=1 ), eye=dict( x=0, y=1.0707, z=1, ) ), aspectratio = dict( x=1, y=1, z=0.7 ), aspectmode = 'manual' ), ) fig.show()What About Dash?¶
Dash is an open-source framework for building analytical applications, with no Javascript required, and it is tightly integrated with the Plotly graphing library.
Learn about how to install Dash at https://dash.plot.ly/installation.
Everywhere in this page that you see fig.show()
, you can display the same figure in a Dash application by passing it to the figure
argument of the Graph
component from the built-in dash_core_components
package like this:
import plotly.graph_objects as go # or plotly.express as px fig = go.Figure() # or any Plotly Express function e.g. px.bar(...) # fig.add_trace( ... ) # fig.update_layout( ... ) from dash import Dash, dcc, html app = Dash() app.layout = html.Div([ dcc.Graph(figure=fig) ]) app.run(debug=True, use_reloader=False) # Turn off reloader if inside Jupyter
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4