How to make tri-surf plots in Python with Plotly. Trisurfs are formed by replacing the boundaries of a compact surface by touching triangles.
Plotly Studio: Transform any dataset into an interactive data application in minutes with AI. Sign up for early access now.
Trisurf plots can be made using a figure factory as detailed in this page.
Torus¶In [1]:
import plotly.figure_factory as ff import numpy as np from scipy.spatial import Delaunay u = np.linspace(0, 2*np.pi, 20) v = np.linspace(0, 2*np.pi, 20) u,v = np.meshgrid(u,v) u = u.flatten() v = v.flatten() x = (3 + (np.cos(v)))*np.cos(u) y = (3 + (np.cos(v)))*np.sin(u) z = np.sin(v) points2D = np.vstack([u,v]).T tri = Delaunay(points2D) simplices = tri.simplices fig = ff.create_trisurf(x=x, y=y, z=z, simplices=simplices, title=dict(text="Torus"), aspectratio=dict(x=1, y=1, z=0.3)) fig.show()
In [2]:
import plotly.figure_factory as ff import numpy as np from scipy.spatial import Delaunay u = np.linspace(0, 2*np.pi, 24) v = np.linspace(-1, 1, 8) u,v = np.meshgrid(u,v) u = u.flatten() v = v.flatten() tp = 1 + 0.5*v*np.cos(u/2.) x = tp*np.cos(u) y = tp*np.sin(u) z = 0.5*v*np.sin(u/2.) points2D = np.vstack([u,v]).T tri = Delaunay(points2D) simplices = tri.simplices fig = ff.create_trisurf(x=x, y=y, z=z, colormap="Portland", simplices=simplices, title=dict(text="Mobius Band")) fig.show()
In [3]:
import plotly.figure_factory as ff import numpy as np from scipy.spatial import Delaunay u=np.linspace(-np.pi/2, np.pi/2, 60) v=np.linspace(0, np.pi, 60) u,v=np.meshgrid(u,v) u=u.flatten() v=v.flatten() x = (np.sqrt(2)*(np.cos(v)*np.cos(v))*np.cos(2*u) + np.cos(u)*np.sin(2*v))/(2 - np.sqrt(2)*np.sin(3*u)*np.sin(2*v)) y = (np.sqrt(2)*(np.cos(v)*np.cos(v))*np.sin(2*u) - np.sin(u)*np.sin(2*v))/(2 - np.sqrt(2)*np.sin(3*u)*np.sin(2*v)) z = (3*(np.cos(v)*np.cos(v)))/(2 - np.sqrt(2)*np.sin(3*u)*np.sin(2*v)) points2D = np.vstack([u, v]).T tri = Delaunay(points2D) simplices = tri.simplices fig = ff.create_trisurf(x=x, y=y, z=z, colormap=['rgb(50, 0, 75)', 'rgb(200, 0, 200)', '#c8dcc8'], show_colorbar=True, simplices=simplices, title=dict(text="Boy's Surface")) 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