2013-02-05 10 views
14

Czy jest jakiś sposób w matplotlib do ustawiania znaczników między etykietami i osią, tak jak jest domyślnie w Origin? Sekcja przykładów online nie pokazuje pojedynczego wykresu z tą funkcją. Lubię mieć kleszcze poza obszarem spisku, ponieważ czasami fabuła ukrywa kleszcze w środku.pozycja tykotu macplotlib względem osi

+0

ściśle związane z http://stackoverflow.com/questions/14705904/matplotlib-ticks-thickness – tacaswell

Odpowiedz

27

Aby ustawić tylko główne kleszcze:

ax = plt.gca() 
ax.get_yaxis().set_tick_params(direction='out') 
ax.get_xaxis().set_tick_params(direction='out') 
plt.draw() 

ustawienie wszystkich jednostek (mniejszych i większych),

ax.get_yaxis().set_tick_params(which='both', direction='out') 
ax.get_xaxis().set_tick_params(which='both', direction='out') 
plt.draw() 

aby ustawić zarówno X i oś y jednocześnie:

ax = plt.gca() 
ax.tick_params(direction='out') 

axis level doc i axes level doc

Aby przesunąć etykiety zaznaczenia względem kleszczy, należy użyć pad. Porównaj

ax.tick_params(direction='out', pad=5) 
plt.draw() 

z

ax.tick_params(direction='out', pad=15) 
plt.draw() 
+0

ostatni wydaje się działać dobrze. Teraz muszę znaleźć sposób na przeniesienie etykiet tyknięć o tę samą odległość. W rzeczywistości błędnie wstawiłem dwukrotnie linię kodu "ax.tick_params (która =" obie ", kierunek =" na zewnątrz ", długość = 25, szerokość = 6)" i, co zaskakujące, zmniejszyło wielkość działki o wymaganą ilość, aby mieć idealna fabuła. Ale nie wiem dlaczego. – user1850133

+0

Czy pamiętasz, aby dołączyć 'plt.draw()'? Możesz dostosować odstępy między etykietą a kleszczem za pomocą 'pad' kwarg. – tacaswell

+0

tutaj http://matplotlib.org/api/pyplot_api.html?highlight=pyplot.draw#matplotlib.pyplot.draw; twierdzą, że plt.draw() nie jest potrzebny to sekwencja modyfikacji kończy się na show(); chociaż próbowałem go przed sprawdzeniem definicji plt.draw(): nic nie zmieniło. czym jest "pad"? – user1850133

0

Chyba trzeba to:

Przez uzyskanie obiektu subplot można grać ze swoimi kleszczami

ax = plt.subplot(111) 
yax = ax.get_yaxis() 
plt.xticks(y_pos, city) 
xtickNames=ax.set_xticklabels(city) 
plt.setp(xtickNames, rotation=45, fontsize=10) 

Following is the output with 45 degrees rotated ticks

Powiązane problemy