एक matplotlib साजिश में xticks निकालें?


290

मेरे पास एक semilogx साजिश है और मैं xticks निकालना चाहूंगा। मैंने कोशिश की:

plt.gca().set_xticks([])
plt.xticks([])
ax.set_xticks([])

ग्रिड गायब (ठीक) है, लेकिन छोटे टिक्स (मुख्य टिक्स के स्थान पर) बने हुए हैं। उन्हें कैसे हटाया जाए?


कुछ समाधान मेरे काम नहीं आए। लेकिन यहाँ उदाहरणों का थोड़ा परिवर्तन: ax.set_xticks([], [])और यह हल हो गया है ...
ट्रैवलट्रैडर

जवाबों:


464

इस tick_paramsतरह से सामान के लिए विधि बहुत उपयोगी है। यह कोड मेजर और माइनर टिक्स को बंद कर देता है और एक्स-एक्सिस से लेबल हटा देता है।

from matplotlib import pyplot as plt
plt.plot(range(10))
plt.tick_params(
    axis='x',          # changes apply to the x-axis
    which='both',      # both major and minor ticks are affected
    bottom=False,      # ticks along the bottom edge are off
    top=False,         # ticks along the top edge are off
    labelbottom=False) # labels along the bottom edge are off
plt.show()
plt.savefig('plot')
plt.clf()

यहां छवि विवरण दर्ज करें


87
मैं सराहना करता हूं कि यह न केवल सवाल का जवाब देता है बल्कि कई चीजों को बंद / चालू करने के लिए एक टेम्पलेट प्रदान करता है। यह x और y दोनों अक्षों पर परिणाम लागू होता है:plt.tick_params(axis='both', which='both', bottom='off', top='off', labelbottom='off', right='off', left='off', labelleft='off')
स्टीवन सी। हॉवेल

2
यदि यह 3 डी प्लॉट है तो क्या होगा?
tommy.carstensen

38
यह एक बेहतरीन जवाब है। ओओ संस्करण की तलाश करने वालों के लिए, axesएक ही tick_paramsविधि है।
मैड फिजिसिस्ट

22
के नए संस्करण में matplotlib, आप बदलना चाहिए 'on'साथ Trueऔर 'off'साथ False
बॉलपॉइंटबैन

1
उत्तर को OOP इंटरफ़ेस और नए संस्करण सिंटैक्स के लिए अपडेट किया जाना चाहिए।
ifly6

142

ओपी के लिए पूछ रहा था बिल्कुल नहीं, लेकिन सभी कुल्हाड़ियों लाइनों, टिक और लेबल को निष्क्रिय करने का एक सरल तरीका बस कॉल करना है:

plt.axis('off')

26
मुझे धन्यवाद की क्या जरूरत थी। ऑब्जेक्ट ओरिएंटेड वर्जन ax.axis('off')मौजूदा एक्सिस उदाहरण पर होगा ।
प्लाज़्माबिन्टुरोंग

5
केवल xaxis के लिए कैसे?
19:26 बजे qrtLs

82

वैकल्पिक रूप से, आप एक खाली टिक स्थिति और लेबल को पास कर सकते हैं

# for matplotlib.pyplot
# ---------------------
plt.xticks([], [])
# for axis object
# ---------------
# from Anakhand May 5 at 13:08
# for major ticks
ax.set_xticks([])
# for minor ticks
ax.set_xticks([], minor=True)

8
यदि आपके पास एक मौजूदा अक्ष उदाहरण है, axतो कहें , तो आप उपयोग कर सकते हैं:ax.set_xticks([], [])
गुइलेरमे सालोमे

@ GuilhermeSalomé अब यह चेतावनी देता है, "Mat_otlib 3.2 के बाद से set_xticks () के मामूली पैरामीटर को पास करना पदावनत कर दिया जाता है; पैरामीटर कीवर्ड-केवल दो मामूली रिलीज़ बाद में बन जाएगा।" अब सही समाधान क्या है?
रिलन शेफ़र

2
@RylanSipleffer ax.set_xticks([])प्रमुख टिक के लिए, ax.set_xticks([], minor=True)मामूली टिक के लिए। के साथ समकक्ष pyplotहैं plt.xticks([])और plt.xticks([], minor=True)
उत्तराखंड


42

जॉन विनयार्ड द्वारा दिए गए की तुलना में एक बेहतर और सरल, समाधान है। उपयोग करें NullLocator:

import matplotlib.pyplot as plt

plt.plot(range(10))
plt.gca().xaxis.set_major_locator(plt.NullLocator())
plt.show()
plt.savefig('plot')

उम्मीद है की वो मदद करदे।


22
"बेहतर" बहस योग्य है, लेकिन विकल्प के लिए +1।
यांत्रिक_मीट

इस समाधान के एक संस्करण ने मेरे लिए भी काम किया जब लक्ष्य केवल मुख्य भूखंड में रखते हुए "इनसेट" में ज़ूम इन किया गया था, से xticks को निकालना था। उपयोग करके axins.xaxis.set_major_locator(plt.NullLocator()), axinsवह वस्तु कहाँ से लौटाया जाता है axins = zoomed_inset_axes()( जिससे आयात किया गया फ़ंक्शन mpl_toolkits.axes_grid1.inset_locator)।
डेनिस सॉमेर्स

28

लेबल हटाने के लिए यह प्रयास करें (लेकिन टिक नहीं):

import matplotlib.pyplot as plt

plt.setp( ax.get_xticklabels(), visible=False)

उदाहरण



1
ऑब्जेक्ट ओरिएंटेड इंटरफ़ेस के बारे में कैसे?
ifly6

यह एकमात्र उत्तर था जिसने मेरे लिए 3 डी भूखंडों के लिए भी काम किया। इसके लिए धन्यवाद!
ब्रेंट

13

यह स्निपेट केवल xticks को हटाने में मदद कर सकता है।

from matplotlib import pyplot as plt    
plt.xticks([])

यह स्निपेट xticks और yticks दोनों को हटाने में मदद कर सकता है।

from matplotlib import pyplot as plt    
plt.xticks([]),plt.yticks([])

3
# remove all the ticks (both axes), and tick labels on the Y axis
plt.tick_params(top='off', bottom='off', left='off', right='off', labelleft='off', labelbottom='on')

2
इस का ऑब्जेक्ट ओरिएंटेड वर्जन हैax.tick_params()
मार्सेलो विला-पीनरोस

1
इसके अलावा, का उपयोग offऔर onपदावनत किया जाता है। MatplotlibDeprecationWarning: Passing one of 'on', 'true', 'off', 'false' as a boolean is deprecated; use an actual boolean (True/False) instead.
मार्सेलो विला-पीनरोस

0

आप में से जो सभी टिक्स और लेबल को बंद करने के लिए एक छोटी कमांड की तलाश कर रहे हैं, उनके साथ ठीक होना चाहिए

plt.tick_params(top=False, bottom=False, left=False, right=False, labelleft=False, labelbottom=False)

जो boolसंस्करण matplotlib> = 2.1.1 के बाद से संबंधित मापदंडों के लिए टाइप करने की अनुमति देता है

कस्टम टिक सेटिंग्स के लिए, डॉक्स मददगार हैं:

https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.tick_params.html

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.