পাইপলটের সাথে সমস্ত সাবপ্লটগুলির উপরে কীভাবে একটি একক, প্রধান শিরোনাম সেট করবেন?


219

আমি ব্যবহার করছি pyplot। আমার কাছে 4 টি সাবপ্লট রয়েছে। সমস্ত সাবপ্লটগুলির উপরে কীভাবে একটি একক, প্রধান শিরোনাম সেট করবেন? title()এটি শেষ সাবপ্লোটের উপরে সেট করে।

উত্তর:


283

ব্যবহার করুন pyplot.suptitleবা Figure.suptitle:

import matplotlib.pyplot as plt
import numpy as np

fig=plt.figure()
data=np.arange(900).reshape((30,30))
for i in range(1,5):
    ax=fig.add_subplot(2,2,i)        
    ax.imshow(data)

fig.suptitle('Main title') # or plt.suptitle('Main title')
plt.show()

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


1
সঙ্গে কাজ করে suptitle। তবুও, আমি আপনার "নির্লজ্জ হ্যাক!" :)
জাকুব এম .15

6
নোট, এটা plt.suptitle()এবং না plt.subtitle()। আমি প্রথমদিকে এটি বুঝতে পারি নি এবং একটি বাজে ত্রুটি পেয়েছি! : ডি
ডেটাম্যান 10'16

127

আমার নিজস্ব প্লটে এটি প্রয়োগ করার সময় কয়েকটি পয়েন্ট আমি দরকারী বলে মনে করি:

  • আমি fig.suptitle(title)বরং ব্যবহারের ধারাবাহিকতা পছন্দ করিplt.suptitle(title)
  • fig.tight_layout()শিরোনাম ব্যবহার করার সাথে সাথে স্থানান্তরিত করা আবশ্যকfig.subplots_adjust(top=0.88)
  • ফন্ট আকার সম্পর্কে নীচে উত্তর দেখুন

ম্যাটপ্ল্লিটিব ডক্সে সাবপ্লটস ডেমো থেকে নেওয়া কোডের উদাহরণ এবং মাস্টার শিরোনামের সাথে সামঞ্জস্য।

একটি দুর্দান্ত 4x4 প্লট

import matplotlib.pyplot as plt
import numpy as np

# Simple data to display in various forms
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)

fig, axarr = plt.subplots(2, 2)
fig.suptitle("This Main Title is Nicely Formatted", fontsize=16)

axarr[0, 0].plot(x, y)
axarr[0, 0].set_title('Axis [0,0] Subtitle')
axarr[0, 1].scatter(x, y)
axarr[0, 1].set_title('Axis [0,1] Subtitle')
axarr[1, 0].plot(x, y ** 2)
axarr[1, 0].set_title('Axis [1,0] Subtitle')
axarr[1, 1].scatter(x, y ** 2)
axarr[1, 1].set_title('Axis [1,1] Subtitle')

# # Fine-tune figure; hide x ticks for top plots and y ticks for right plots
plt.setp([a.get_xticklabels() for a in axarr[0, :]], visible=False)
plt.setp([a.get_yticklabels() for a in axarr[:, 1]], visible=False)

# Tight layout often produces nice results
# but requires the title to be spaced accordingly
fig.tight_layout()
fig.subplots_adjust(top=0.88)

plt.show()

2
সহজভাবে যোগ figure.suptitle()করা যথেষ্ট নয় যেহেতু সাবপ্লটগুলির শিরোনামগুলি উপদ্বীপের সাথে মিশবে, fig.subplots_adjust(top=0.88)ভাল।
যাচ্ছেন মাইওয়াই

43

যদি আপনার সাবপ্লটগুলিরও শিরোনাম থাকে, আপনার প্রধান শিরোনামের আকারটি সামঞ্জস্য করতে হতে পারে:

plt.suptitle("Main Title", size=16)

ফন্টের আকার পরিবর্তন করা এটি আরও অনেক ভাল করে তোলে। ধন্যবাদ!
Wok

8
পাইথন ২.7 এ এটি আকারের পরিবর্তে ফন্টসাইজplt.suptitle("Main Title", fontsize=16)
তেমাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.