2013-06-16 15 views
24

Matplotlib kullanarak keneleri sabit bir konuma ayarlamanıza yardımcı olan var mı? Bu öğretici açıklar gibi FixedPosition kullanarak denedim:Sabit Konumdaki keneler nasıl ayarlanır, matplotlib

ax = pl.gca() 
ax.xaxis.set_major_locator(eval(locator)) 

http://scipy-lectures.github.io/intro/matplotlib/matplotlib.html#figures-subplots-axes-and-ticks

Ama çalıştırmayı denediğinizde, bana var olmadığını set_major_locator yöntemini anlatır.

Basit bir örnek çok yararlı olacaktır.

Teşekkürler.

+2

Bu bağlantı bağlamı dışında bir kafa karıştırıcı. 'Eval' kullanımı örnek figürlerini oluşturmak için çok akıllı olabilir, 'locator' değerinin ne olduğu belirsizdir. – tacaswell

cevap

47

Yalnızca ax.set_xticks(positions) veya ax.set_yticks(positions)'u kullanın. Örneğin

:

import matplotlib.pyplot as plt 

fig, ax = plt.subplots() 
ax.set_xticks([0.15, 0.68, 0.97]) 
ax.set_yticks([0.2, 0.55, 0.76]) 
plt.show() 

enter image description here

+2

Bu yöntem parseller üzerinde var olan mevcut keneler silecek. Bu ek keneleri mevcut olanları etkilemeden eklemek istersek ne yapmalıyım? – dnth

+0

@dnth: Karşı taraftaki kenelerle yeni bir eksen oluşturmak için grafiği twinx() veya or twiny() yapabilirsiniz. –

+0

@dnth Konumları 'locs = ax.xaxis.get_ticklocs()' ile alabilirsiniz, istediğiniz listeyi eklemek için bu listeyi değiştirin, ardından Joe'nun önerilerini 'ax.set_xticks (locs)' ile takip edin. – ryanjdillon

1
import numpy as np 
import matplotlib.ticker as ticker 
import matplotlib.pyplot as plt 

name_list = ('Omar', 'Serguey', 'Max', 'Zhou', 'Abidin') 
value_list = np.random.randint(0, 99, size = len(name_list)) 
pos_list = np.arange(len(name_list)) 

ax = plt.axes() 
ax.xaxis.set_major_locator(ticker.FixedLocator((pos_list))) 
ax.xaxis.set_major_formatter(ticker.FixedFormatter((name_list))) 
plt.bar(pos_list, value_list, color = '.75', align = 'center') 

plt.show() 
+0

Detaylara dikkat etmek ister misiniz? –

+0

Bu yardımcı oldu. – ConanG