পাইথনে বিভিন্ন লিনস্টাইল দিয়ে কীভাবে বড় এবং গৌণ গ্রিডলাইন তৈরি করা যায়


122

আমি বর্তমানে matplotlib.pyplotগ্রাফ তৈরি করতে ব্যবহার করছি এবং প্রধান গ্রিডলাইনগুলি শক্ত এবং কালো এবং নাবালিকাগুলি হয় গ্রেড বা ড্যাশযুক্ত করতে চাই।

গ্রিড বৈশিষ্ট্যগুলিতে, which=both/major/mineএবং তারপরে রঙ এবং লাইনস্টাইল কেবল লাইনস্টাইল দ্বারা সংজ্ঞায়িত করা হয়। কেবল মাইনর লাইনস্টাইল নির্দিষ্ট করার কোনও উপায় কি?

আমার এখন পর্যন্ত উপযুক্ত কোডটি

plt.plot(current, counts, 'rd', markersize=8)
plt.yscale('log')
plt.grid(b=True, which='both', color='0.65', linestyle='-')

উত্তর:


174

প্রকৃতপক্ষে, এটি সেটিংয়ের মতোই সহজ majorএবং minorপৃথকভাবে:

In [9]: plot([23, 456, 676, 89, 906, 34, 2345])
Out[9]: [<matplotlib.lines.Line2D at 0x6112f90>]

In [10]: yscale('log')

In [11]: grid(b=True, which='major', color='b', linestyle='-')

In [12]: grid(b=True, which='minor', color='r', linestyle='--')

গৌণ গ্রিডযুক্ত গ্যাচা হ'ল আপনাকে খুব ছোটখাটো টিক চিহ্নও চালু করতে হবে। উপরের কোডে এটি করা হয় yscale('log')তবে এটি দিয়েও করা যায় plt.minorticks_on()

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


31
কখনও কখনও আপনাকে plt.minorticks_on()গৌণ গ্রিডটি আসলে উপস্থিত হওয়ার জন্যও কল করতে হবে। দেখুন stackoverflow.com/a/19940830/209246
eqzx

2
দস্তাবেজগুলি থেকে : "যদি কাওয়ার্গগুলি সরবরাহ করা হয় তবে ধরে নেওয়া হয় যে আপনি একটি গ্রিড চান এবং এইভাবে খকে সত্য হিসাবে সেট করা হয়েছে।" - যাতে আপনি বাদ দিতে পারেন b=True
মিকু

আমি ডাবল লগ প্লট দিয়ে একই কাজ করার চেষ্টা করেছি। দুর্ভাগ্যক্রমে এক্স-অক্ষটি কেবল বড় বড় থ্রিজি প্রদর্শন করে। নাবালিক ছিদ্রগুলিও স্যুইচ করা সম্ভব?
আলেকজান্ডার Cska

1
Lexআলেক্সান্দারে আপনাকে ফাংশনে axis="both"প্যারামিটার যুক্ত করতে plt.grid()হবে।
কানমানি

এটিকে ডিফল্ট শৈলী হিসাবে তৈরি করার জন্য কি কোনও আরসিপ্রাম সম্পত্তি রয়েছে?
কানমানি

21

একটি সহজ DIY উপায় হ'ল গ্রিডটি নিজেকে তৈরি করা:

import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111)

ax.plot([1,2,3], [2,3,4], 'ro')

for xmaj in ax.xaxis.get_majorticklocs():
  ax.axvline(x=xmaj, ls='-')
for xmin in ax.xaxis.get_minorticklocs():
  ax.axvline(x=xmin, ls='--')

for ymaj in ax.yaxis.get_majorticklocs():
  ax.axhline(y=ymaj, ls='-')
for ymin in ax.yaxis.get_minorticklocs():
  ax.axhline(y=ymin, ls='--')
plt.show()
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.