2013-06-16 9 views
24

क्या कोई मुझे matplotlib का उपयोग करके एक निश्चित स्थिति पर टिक सेट करने में मदद कर सकता है? मैं FixedPosition का उपयोग कर की कोशिश की है के रूप में इस शिक्षण सामग्री वर्णन:फिक्स्ड पोजिशन पर टिक्स कैसे सेट करें, 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

लेकिन जब मैं चलाने का प्रयास, यह मेरे कि set_major_locator विधि मौजूद नहीं है बताता है।

एक साधारण उदाहरण बहुत उपयोगी होगा।

धन्यवाद।

+2

वह लिंक संदर्भ से बाहर एक भ्रामक है। 'Eval' का उपयोग उनके उदाहरण के आंकड़े उत्पन्न करने के लिए बहुत चालाक हो सकता है, यह बहुत अस्पष्ट है कि' लोकेटर 'का मूल्य क्या है। – tacaswell

उत्तर

47

बस ax.set_xticks(positions) या ax.set_yticks(positions) का उपयोग करें।

उदाहरण के लिए:

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

यह विधि मेरे पास प्लॉट पर मौजूद मौजूदा टिकों को मिटा देगी। क्या होगा यदि मैं मौजूदा लोगों को प्रभावित किए बिना इन अतिरिक्त टिकों को जोड़ना चाहता हूं? – dnth

+0

@dnth: आप विपरीत पक्ष पर टिक के साथ एक नया धुरी बनाने के लिए 'twinx() 'या' twiny() 'चार्ट कर सकते हैं। –

+0

@dnth आप 'locs = ax.xaxis.get_ticklocs()' के साथ स्थान प्राप्त कर सकते हैं, उस सूची को संशोधित करने के लिए उस सूची को संशोधित करें, फिर 'ax.set_xticks (locs)' के साथ जो के सुझावों का पालन करें। – 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

विस्तृत करने के लिए देखभाल? –

+0

यह सहायक था। – ConanG

संबंधित मुद्दे