ম্যাটপ্লোটিলেবে লাইন প্লটে হাজির হওয়ার জন্য উল্লম্ব গ্রিডলাইনগুলি পাওয়া


95

আমি আমার প্লটটিতে অনুভূমিক এবং উলম্ব উভয় গ্রিড লাইন পেতে চাই তবে কেবল অনুভূমিক গ্রিড লাইনগুলি ডিফল্টরূপে প্রদর্শিত হচ্ছে। আমি pandas.DataFrameএক্স-অ্যাক্সেসের তারিখগুলি সহ একটি লাইন প্লট তৈরি করতে পাইথনের একটি বর্গ কোয়েরি থেকে একটি ব্যবহার করছি । আমি নিশ্চিত না কেন তারা তারিখগুলিতে হাজির হয় না এবং আমি এর উত্তর অনুসন্ধানের চেষ্টা করেছি কিন্তু একটিও পাইনি।

আমি গ্রাফটি প্লট করার জন্য যা ব্যবহার করেছি তা হ'ল নীচের সরল কোড।

data.plot()
grid('on')

ডেটা ডেটাফ্রেম যা বর্গ কোয়েরি থেকে তারিখ এবং ডেটা রয়েছে।

আমি নীচের কোডটি যুক্ত করার চেষ্টা করেছি কিন্তু আমি এখনও উলম্ব গ্রিড লাইনগুলির সাথে একই আউটপুটটি পাই।

ax = plt.axes()        
ax.yaxis.grid() # horizontal lines
ax.xaxis.grid() # vertical lines

কোনও পরামর্শ?

এখানে চিত্র বর্ণনা লিখুন


data.plot(grid="on")আমার জন্য কাজ করেছেন
মার্কাস

উত্তর:


101

আপনার কলগুলিতে আপনাকে বুলিয়ান আরগ দেওয়ার দরকার হতে পারে, যেমন ax.yaxis.grid(True)পরিবর্তে ব্যবহার করুন ax.yaxis.grid()। অতিরিক্তভাবে, আপনি যেহেতু উভয়কেই ব্যবহার করছেন আপনি একত্রিত করতে পারেন ax.gridযা প্রতিটি মাত্রার জন্য একবার করে না করে বরং উভয় ক্ষেত্রেই কাজ করে।

ax = plt.gca()
ax.grid(True)

এটি আপনার বাছাই করা উচিত।


আমি চেষ্টা করেছিলাম কিন্তু কিছু কারণে এটি এখনও আগের মতো দেখতে পাওয়া যায়
ওসমান্ড বিশপ

4
আপনি কি ইন্টারেক্টিভ ইন্টারপ্রেটারে এটি করছেন? নিশ্চিত করার জন্য আপনি কল করার আগে গ্রিডটি সেট করছেনplt.show()
উইম

আমি আইপিথন ব্যবহার করছি। আমি plt.show () যোগ করার চেষ্টা করেছি এটি কোনও পার্থক্য করবে না।
ওসমান্ড বিশপ

4
আচ্ছা এটি অদ্ভুত। আপনার আইপথন সংস্করণটি কী, এটির মতো চালানোর চেষ্টা করুন ipython --pylabএবং plt.grid(True)তাত্ক্ষণিকভাবে করুন - আপনি গ্রিডটি দেখতে পাচ্ছেন?
উইম

আমি plt.grid(True)উভয় উল্লম্ব এবং অনুভূমিক গ্রিড লাইন দিয়ে খালি গ্রাফটি চেষ্টা করেছি এবং পেয়েছি, সুতরাং হ্যাঁ এটি কেন বেআইনী, কেন আমি আমার লাইন প্লটের জন্য এটি পেতে পারি না। আমি আইপিথনের সর্বশেষ উপলব্ধ সংস্করণটি চালাচ্ছি।
ওসমান্ড বিশপ

59

plt.gca().xaxis.grid(True) আমার জন্য সমাধান হিসাবে প্রমাণিত


6
myaxes.grid(which='x')Matplotlib সংস্করণ 1.4.2 আমার জন্য কাজ করা হয় নি ... পাই নি whichএ সব কাজের জন্য শব্দ। তবে, myaxes.xaxis.grid(True)কৌশলটি করেছেন এবং ধারণাগতভাবে আরও ভাল আইএমও। ওহ, এবং myaxes.set_axisbelow(True)গ্রিডটি ডেটার পিছনে রাখার দরকারী পদ্ধতির কথাটি ভুলে যাবেন না ।
travc

27

ম্যাটপ্লটলিব ডকুমেন্টেশন অনুসারে , Axesক্লাস grid()পদ্ধতির স্বাক্ষর নিম্নরূপ:

অ্যাকসেস্রিড (বি = কিছুই নয়, যা = 'মেজর', অক্ষ = 'উভয়', ** কোয়ার্গস)
অক্ষ গ্রিডগুলি চালু বা বন্ধ করুন।

which বড় টিক গ্রিড, মাইনর টিক গ্রিড বা উভয়ই আক্রান্ত কিনা তা নিয়ন্ত্রণ করতে 'মেজর' (ডিফল্ট), 'মাইনর' বা 'উভয়' হতে পারে।

axis কোন গ্রিডলাইন আঁকতে হবে তা নিয়ন্ত্রণ করতে 'উভয়' (ডিফল্ট), 'x', বা 'y' হতে পারে।

সুতরাং এক্স অক্ষ এবং y অক্ষ উভয়ের জন্য গ্রিড লাইনগুলি দেখানোর জন্য, আমরা নিম্নলিখিত কোডটি ব্যবহার করতে পারি:

ax = plt.gca()
ax.grid(which='major', axis='both', linestyle='--')

এই পদ্ধতিটি গ্রিড লাইনের জন্য কী প্রদর্শিত হবে তার উপর আমাদের আরও ভাল নিয়ন্ত্রণ দেয়।


7

সম্ভবত এটি সমস্যার সমাধান করতে পারে: ম্যাটপ্লোটিলিব, একটি প্লটের একটি গ্রিডের আকার নির্ধারণ করুন

ax.grid(True, which='both')

সত্যটি হ'ল গ্রিডটি কাজ করছে, তবে কেবলমাত্র একটি ভি-গ্রিড রয়েছে 00:00 এ এবং অন্যগুলিতে গ্রিড নেই। আমি একই সমস্যার মুখোমুখি হয়েছি যে অনেক দিনের মধ্যে নভেম্বর 1 এ কেবল একটি গ্রিড রয়েছে।


3

সংক্ষিপ্ত উত্তর (আরও তথ্যের জন্য নীচে পড়ুন):

ax.grid(axis='both', which='both')

এখানে চিত্র বর্ণনা লিখুন

আপনি যা করেন তা সঠিক এবং এটি কার্যকর হওয়া উচিত।

তবে আপনার উদাহরণের এক্স অক্ষটি যেহেতু ডেটটাইম অক্ষটি হ'ল মেজর টিক-চিহ্নগুলি (সম্ভবত সম্ভবত) কেবল এক্স অক্ষের উভয় প্রান্তে উপস্থিত হবে। অন্যান্য দৃশ্যমান টিক-চিহ্নগুলি হ'ল মাইনর টিক-চিহ্ন।

ax.grid()পদ্ধতি, ডিফল্টরূপে, মেজর টিক-চিহ্ন উপর গ্রিড লাইন স্বপক্ষে। অতএব, আপনার চক্রান্তে কিছুই উপস্থিত হয় না।

টিক-চিহ্নগুলি হাইলাইট করতে নীচের কোডটি ব্যবহার করুন। নাবালকরা লাল থাকাকালীন মেজররা নীল হবে।

ax.tick_params(which='both', width=3)
ax.tick_params(which='major', length=20, color='b')
ax.tick_params(which='minor', length=10, color='r')

এখন গ্রিড লাইনগুলিকে মাইনর টিক-চিহ্নগুলিতে প্রদর্শিত হতে বাধ্য which='minor'করতে, পদ্ধতিটিতে পাস করুন :

ax.grid(b=True, which='minor', axis='x', color='#000000', linestyle='--')

বা কেবল which='both'উভয় মেজর এবং মাইনর গ্রিড লাইন আঁকতে ব্যবহার করুন । এবং এটি আরও মার্জিত গ্রিড লাইন:

ax.grid(b=True, which='minor', axis='both', color='#888888', linestyle='--')
ax.grid(b=True, which='major', axis='both', color='#000000', linestyle='-')

1

শুধুমাত্র অনুভূমিক রেখার জন্য

ax = plt.axes()        
ax.yaxis.grid() # horizontal lines

এটি কাজ করে

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