2014-11-15 6 views
8

Es tut uns leid, dass Sie sich heute mit plottigen Fragen beschäftigt haben. Hier wäre noch eins: Wie würde ich die Legende und die Achsenbeschriftungen in plotlys neuen 3D-Streudiagrammen zeigen? Wenn ich das folgende Streudiagramm in 2D habe, das alles gut erzeugt, habe ich eine andere Dimension hinzugefügt, aber die Achsenbeschriftungen werden nicht mehr angezeigt (siehe Code unten) und das gleiche Problem mit der Legende. Irgendwelche Tipps? Vielen Dank!Legende und Beschriftungsachsen in plotly 3D-Streudiagrammen anzeigen

enter image description here

enter image description here

traces = [] 

for name in ('Iris-setosa', 'Iris-versicolor', 'Iris-virginica'): 

    trace = Scatter3d(
     x=Y[y==name,0], 
     y=Y[y==name,1], 
     z=Y[y==name,2], 
     mode='markers', 
     name=name, 
     marker=Marker(
      size=12, 
      line=Line(
       color='rgba(217, 217, 217, 0.14)', 
       width=0.5 
      ), 
      opacity=0.8 
     ) 

    ) 
    traces.append(trace) 


data = Data(traces) 
layout = Layout(xaxis=XAxis(title='PC1'), 
       yaxis=YAxis(title='PC2'), 
       zaxis=ZAxis(title='PC3') 
       ) 
fig = Figure(data=data, layout=layout) 
py.iplot(fig) 

Antwort

16

Sie sind in Ihrer Nähe! 3D-Achsen sind tatsächlich in einem Scene Objekt eingebettet. Hier ist ein einfaches Beispiel:

import plotly.plotly as py 
from plotly.graph_objs import * 

trace1 = Scatter3d(
    x=[1, 2], 
    y=[1, 2], 
    z=[1, 2] 
) 
data = Data([trace1]) 
layout = Layout(
    scene=Scene(
     xaxis=XAxis(title='x axis title'), 
     yaxis=YAxis(title='y axis title'), 
     zaxis=ZAxis(title='z axis title') 
    ) 
) 
fig = Figure(data=data, layout=layout) 
plot_url = py.plot(fig, filename='3d-scatter-with-axes-titles') 

enter image description here

+0

Nochmals vielen Dank, Chris! Und die Legende könnte auch über "showlegend = True" angezeigt werden, sobald die "Szene" richtig konfiguriert wurde, schön! – Sebastian