2011-08-09 5 views
10

Chcę narysować wykres z matplotlib z osi po obu stronach działki, podobnej do tej działki (kolor nie ma znaczenia dla tego pytania):W matplotlib, jak wyświetlić oś po obu stronach figury?

plot

Jak mogę to zrobić z matplotlib?

Uwaga: w przeciwieństwie do tego, co pokazano na przykładowym wykresie, chcę, aby dwie osie były dokładnie takie same i chcę pokazać tylko jeden wykres. Dodanie dwóch osi ułatwia jedynie odczytanie wykresu.

Odpowiedz

8

Istnieje kilka istotnych przykładów w dokumentacji online:

+1

Czy istnieje bardziej wyspecjalizowana funkcja w przypadku, gdy chcę, aby dwie osie były dokładnie takie same? –

+0

Dany przykład Fahrenheita i Cielca, który ci dał, jest prawdopodobnie najlepszym sposobem na zrobienie tego. Gdzie zamiast przekazywać granice funkcji konwertującej, zachowałbyś je tak samo. Zmień go na ax2.set_ylim (y1, y2), myślę, że to powinno zadziałać. – daveydave400

+1

@ daveydave400: pewnie! Chciałem tylko upewnić się, że nie brakuje mi prostszego rozwiązania :) –

35

Można użyć tick_params():

bar(range(10), range(10)) 
tick_params(labeltop=True, labelright=True) 

Generuje to Mag:

Bar plot with both x and y axis labeled the same

0

Robiłem to wcześniej przy użyciu następujących:

# Create figure and initial axis  
fig, ax0 = plt.subplots() 
# Create a duplicate of the original xaxis, giving you an additional axis object 
ax1 = ax.twinx() 
# Set the limits of the new axis from the original axis limits 
ax1.set_ylim(ax0.get_ylim()) 

To będzie dokładnie powielać oryginalną oś y.