2017-04-02 5 views
2

Ich benutze Plotly + Python. Wie kann ich einen einzelnen Vektor, dargestellt durch einen Pfeil, in 3D darstellen?Plotly + Python: Wie zeichne Pfeile in 3D?

Anmerkungen (die eine hacky Problemumgehung wären) sind nur 2D und Köcher-Plots sind auch nur 2D.

+0

Da Plotly keine Liniensegmente hat, können Sie dies nicht wirklich sehr gut tun. Sie könnten eine Linie von einem Punkt zum anderen zeichnen und am Ende etwas komisches tun, das ein bisschen wie eine Pfeilspitze aussieht, aber die notwendigen Primitiven, um es richtig zu machen, scheinen nicht da zu sein. –

Antwort

0

Als Mike Wise erwähnt, ist es nicht möglich, sie direkt nach vorne zu tun, doch Sie Ihre Vektor berechnen kann und es dann plotten durch die Linie zum Ursprung Zeichnung:

Zum Beispiel: Plot einige Punkte in 3D und zeichnen Sie einen Vektor auf den Schwerpunkt dieser Punkte entsprechenden

import plotly.graph_objs as go 
from plotly.offline import plot 

#prepare plotting points 
#points are: (0,5,5),(5,0,0),(5,10,5),(10,5,5) 
points = go.Scatter3d(x = [0,5,5,10], 
         y = [5,0,10,5], 
         z = [5,0,5,0], 
         mode = 'markers', 
         marker = dict(size = 2, 
             color = "rgb(227,26,28)") 
        ) 
#Compute centroid of all 3 points by taking the mean of each of 
#its coordinates (not sure this is the right definition of centroid) 
centerX = (0+5+5+10)/float(4) 
centerY = (5+0+10+5)/float(4) 
centerZ = (5+0+5+0)/float(4) 

#Prepare centroid vector 
vector = go.Scatter3d(x = [0,centerX], 
         y = [0,centerY], 
         z = [0,centerZ], 
         marker = dict(size = 1, 
             color = "rgb(84,48,5)"), 
         line = dict(color = "rgb(84,48,5)", 
            width = 6) 
        ) 
data = [points,vector] 
layout = go.Layout(margin = dict(l = 0, 
            r = 0, 
            b = 0, 
            t = 0) 
       ) 
fig = go.Figure(data=data,layout=layout) 
plot(fig,filename="vector.html",auto_open=False,image='png',image_height=800,image_width=1500) 

Dies erzeugt:

enter image description here

Es wird viel besser sein, wenn Sie die interaktive HTML-Datei öffnen

Verwandte Themen