2015-06-24 4 views
5

Ich plotly für Python und ich kann nicht x und y Achse so eingestellt, dass sie den gleichen Maßstab haben könnten:Plotly, gleicher Maßstab für x und y-Achse

Hier ist mein Layout:

layout = Layout(
    xaxis=XAxis(
     range=[-150, 150], 
     showgrid=True, 
     zeroline=True, 
     showline=True, 
     gridcolor='#bdbdbd', 
     gridwidth=2, 
     zerolinecolor='#969696', 
     zerolinewidth=4, 
     linecolor='#636363', 
     linewidth=6 
    ), 
    yaxis=YAxis(
     range=[-150,150], 
     showgrid=True, 
     zeroline=True, 
     showline=True, 
     gridcolor='#bdbdbd', 
     gridwidth=2, 
     zerolinecolor='#969696', 
     zerolinewidth=4, 
     linecolor='#636363', 
     linewidth=6 
    ) 
) 

Und dann bekomme ich sowas!

enter image description here

Warum ist der Maßstab für x und y verschieden ist? Das wird meine Visualisierung beeinflussen.

Wie bekomme ich ein Gitter mit quadratischen Zellen?

Antwort

5

Sie können die gleiche Länge für Höhe und Breite in Ihrem Layout zuweisen. Hier ein Beispiel:

layout = Layout(
    xaxis=XAxis(
     range=[-150, 150], 
     showgrid=True, 
     zeroline=True, 
     showline=True, 
     gridcolor='#bdbdbd', 
     gridwidth=2, 
     zerolinecolor='#969696', 
     zerolinewidth=4, 
     linecolor='#636363', 
     linewidth=6 
    ), 
    yaxis=YAxis(
     range=[-150,150], 
     showgrid=True, 
     zeroline=True, 
     showline=True, 
     gridcolor='#bdbdbd', 
     gridwidth=2, 
     zerolinecolor='#969696', 
     zerolinewidth=4, 
     linecolor='#636363', 
     linewidth=6 
    ), 
    height=600, 
    width=600, 
) 
+0

Danke Neda. :) – farhawa

+0

es verdient eine Stimme hoch! – farhawa

+0

@farhawa Sie sind herzlich willkommen! – neda

2

@ nedas Antwort funktioniert nur für gleiche Bereiche auf x und y - was selten der Fall ist. Dies scheint etwas zu sein, nach dem viele Leute fragen, etwas wie die Achse von Matplotlib ("gleich"). Siehe https://github.com/plotly/plotly.py/issues/70

Für jetzt verwende ich einen Multiplikator für beide Bereiche getrennt - im Wesentlichen definieren, wie lange jede Einheitslänge auf jeder Achse ist.

height=(yMax - yMin) * mul 
width= (xMax - xMin) * mul 

Auch durch diese Weise ist das Gitter Quadrat kein% 100 ..