ম্যাটপ্ল্লিটিব প্লটে আইটিক্স সরাবেন?


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
আমি প্রশংসা করি কীভাবে এটি কেবল প্রশ্নের উত্তর দেয় না তবে বেশ কয়েকটি জিনিস বন্ধ / চালু করার জন্য একটি টেম্পলেট সরবরাহ করে। এটি ফলাফল এক্স এবং ওয়াই উভয় অক্ষের জন্য প্রযোজ্য:plt.tick_params(axis='both', which='both', bottom='off', top='off', labelbottom='off', right='off', left='off', labelleft='off')
— স্টিভেন সি হাওয়েল

2
যদি এটি থ্রিডি প্লট হয়?
— tommy.carstensen

38
এটি একটি দুর্দান্ত উত্তর। Oo সংস্করণটি যারা খুঁজছেন তাদের axesক্ষেত্রেও একই tick_paramsপদ্ধতি রয়েছে।
— ম্যাড পদার্থবিজ্ঞানী

22
এর নতুন সংস্করণগুলিতে matplotlibআপনার 'on'সাথে Trueএবং এর 'off'সাথে প্রতিস্থাপন করা উচিত False।
— বলপয়েন্টবেন

1
ওওপি ইন্টারফেস এবং নতুন সংস্করণ সিনট্যাক্সের জন্য উত্তরটি আপডেট করা উচিত।
— ifly6

141

ওপি যা চেয়েছিল ঠিক তা নয়, সমস্ত অক্ষ লাইন, টিক্স এবং লেবেলগুলি অক্ষম করার একটি সহজ উপায়টি কেবল কল করা:

plt.axis('off')

25
আমার যা ধন্যবাদ দরকার ছিল। অবজেক্ট ওরিয়েন্টেড সংস্করণটি ax.axis('off')একটি বিদ্যমান অক্ষের উদাহরণে থাকবে।
— প্লাজমাবিন্টুরং

5
শুধু এক্সএক্সিসের জন্য কীভাবে?
— 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([], [])
— গিলহার্ম সালোম

@ গিলহেরেমসালোমé এটি এখন একটি সতর্কতা উত্থাপন করেছে, "ম্যাটপ্লটলিব ৩.২-এর পরে অবস্থানগতভাবে সেট_স্টিকস () এর ছোটখাটো প্যারামিটারটি পাস করা অবহিত করা হয়েছে; প্যারামিটারটি কী-ওয়ার্ডে পরিণত হবে - পরে কেবল দুটি ছোটখাট প্রকাশ হবে" " এখন সঠিক সমাধান কি?
— রাইলান শ্যাফার

2
@RylanSchaeffer 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)

উদাহরণ


3
setpপাইল্যাব মোডে রয়েছে, স্বতন্ত্র অক্ষগুলির বিরুদ্ধে ব্যবহার করা যাবে না
— ড্যাশী

1
কীভাবে অবজেক্ট ওরিয়েন্টেড ইন্টারফেস?
— ifly6

এটিই ছিল একমাত্র উত্তর যা আমার জন্য থ্রিডি প্লটের জন্যও কাজ করেছিল। এর জন্য ধন্যবাদ!
— ব্রেন্ট

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.