सबप्लॉट्स में पायथन ऑक्सिक्स


84

अगर मैं एक भी imshowसाजिश करूं तो मैं उपयोग कर सकता हूं

fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24],  [5, 15, 25] )

मेरे xtick लेबल को बदलने के लिए।

अब, मैं 12 imshowभूखंडों का उपयोग कर साजिश रच रहा हूं

f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)

मैं इन सबप्लॉट्स में से किसी एक के लिए अपने xticks को कैसे बदल सकता हूं? मैं केवल सबप्लॉट के अक्षों को एक्सेस कर सकता हूं axarr[i, j]। मैं pltसिर्फ एक विशेष सबप्लॉट के लिए कैसे पहुंच सकता हूं ?

जवाबों:


164

इसके दो तरीके हैं:

  1. सबप्लॉट ऑब्जेक्ट (जैसे ax.set_xticksऔर ax.set_xticklabels) या की एक्सिस विधियों का उपयोग करें
  2. plt.scaपाइलट स्टेट मशीन (यानी pltइंटरफेस) के लिए वर्तमान अक्षों को सेट करने के लिए उपयोग करें ।

एक उदाहरण के रूप में (यह setpसबप्लॉट्स के गुणों को बदलने के लिए उपयोग करके दिखाता है ):

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=3, ncols=4)

# Set the ticks and ticklabels for all axes
plt.setp(axes, xticks=[0.1, 0.5, 0.9], xticklabels=['a', 'b', 'c'],
        yticks=[1, 2, 3])

# Use the pyplot interface to change just one subplot...
plt.sca(axes[1, 1])
plt.xticks(range(3), ['A', 'Big', 'Cat'], color='red')

fig.tight_layout()
plt.show()

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


आप कौन सा संस्करण उपयोग कर रहे हैं? मैं हो रही है AttributeError: Unknown property xtickslabelsके लिएplt.setp(ax, xtickslabels=xticks)
फ्रेडरिक नॉर्ड

20

मेटप्लोटलिब रिपॉजिटरी पर हाल ही में (काफी) उत्तर देखें , जिसमें निम्नलिखित समाधान का सुझाव दिया गया है:

  • यदि आप xticklabels सेट करना चाहते हैं:

    ax.set_xticks([1,4,5]) 
    ax.set_xticklabels([1,4,5], fontsize=12)
    
  • यदि आप डिफ़ॉल्ट मूल्यों और स्थानों का उपयोग करके केवल xticklabels के फोंट को बढ़ाना चाहते हैं (जो ऐसी चीज है जिसे मुझे व्यक्तिगत रूप से अक्सर आवश्यकता होती है और बहुत आसान लगता है):

    ax.tick_params(axis="x", labelsize=12) 
    
  • यह सब एक साथ करने के लिए:

    plt.setp(ax.get_xticklabels(), fontsize=12, fontweight="bold", 
             horizontalalignment="left")`
    
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.