Data Visualization

Matplotlib में कई चित्रों का कुशलतापूर्वक प्रदर्शन

Spread the love

Matplotlib विज़ुअलाइज़ेशन बनाने के लिए एक शक्तिशाली Python लाइब्रेरी है। एक सामान्य कार्य तुलना के लिए या एक ही डेटा के विभिन्न पहलुओं को दिखाने के लिए एक ही चित्र में कई छवियों को प्रदर्शित करना है। यह लेख इसे प्राप्त करने के लिए दो कुशल तरीके प्रस्तुत करता है: add_subplot() का पुनरावृति रूप से उपयोग करना और एक पुन: प्रयोज्य फलन बनाना।

विषयवस्तु की तालिका

add_subplot() के साथ पुनरावृति सबप्लॉट निर्माण

यह दृष्टिकोण आदर्श है जब छवियों की संख्या गतिशील होती है। add_subplot(nrows, ncols, index) एक चित्र के भीतर सबप्लॉट बनाता है, पंक्तियों, स्तंभों और वर्तमान सबप्लॉट के सूचकांक की संख्या निर्दिष्ट करता है।

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import os

image_dir = "path/to/your/images"  # अपनी छवि निर्देशिका से बदलें

image_files = [f for f in os.listdir(image_dir) if os.path.isfile(os.path.join(image_dir, f))]

if not image_files:
    print("निर्दिष्ट निर्देशिका में कोई छवि नहीं मिली।")
else:
    num_images = len(image_files)
    nrows = int(num_images**0.5)
    ncols = (num_images + nrows - 1) // nrows

    fig, axes = plt.subplots(nrows, ncols, figsize=(15, 10))
    axes = axes.ravel()

    for i, image_file in enumerate(image_files):
        image_path = os.path.join(image_dir, image_file)
        img = mpimg.imread(image_path)
        axes[i].imshow(img)
        axes[i].set_title(image_file)
        axes[i].axis('off')

    #किसी भी अतिरिक्त सबप्लॉट को हटाएँ
    for j in range(i + 1, len(axes)):
        fig.delaxes(axes[j])


    plt.tight_layout()
    plt.show()

यह कोड छवियों के माध्यम से पुनरावृति करता है, mpimg.imread() का उपयोग करके उन्हें पढ़ता है, और उन्हें सबप्लॉट में प्रदर्शित करता है। plt.tight_layout() अतिव्यापी को रोकता है। अपनी निर्देशिका के साथ `”path/to/your/images”` को बदलना याद रखें। कोड इष्टतम लेआउट के लिए पंक्तियों और स्तंभों को गतिशील रूप से समायोजित करता है और खाली सबप्लॉट को हटा देता है।

छवि प्रदर्शन के लिए पुन: प्रयोज्य फलन

बेहतर कोड संगठन और पुन: प्रयोज्यता के लिए, एक फलन के भीतर छवि प्रदर्शन तर्क को समाहित करें:

import matplotlib.pyplot as plt
import matplotlib.image as mpimg

def display_images(image_paths, titles=None, cols=3, figsize=(15, 10)):
    """एक ही चित्र में कई छवियों को प्रदर्शित करता है।

    Args:
        image_paths: छवि पथों की एक सूची।
        titles: (वैकल्पिक) शीर्षकों की एक सूची।
        cols: सबप्लॉट ग्रिड में स्तंभों की संख्या।
        figsize: चित्र का आकार।
    """
    num_images = len(image_paths)
    rows = (num_images + cols - 1) // cols
    fig, axes = plt.subplots(rows, cols, figsize=figsize)
    axes = axes.ravel()

    for i, image_path in enumerate(image_paths):
        img = mpimg.imread(image_path)
        axes[i].imshow(img)
        if titles:
            axes[i].set_title(titles[i])
        axes[i].axis('off')

    #किसी भी अतिरिक्त सबप्लॉट को हटाएँ
    for j in range(i + 1, len(axes)):
        fig.delaxes(axes[j])

    plt.tight_layout()
    plt.show()

#उदाहरण उपयोग:
image_paths = ["path/to/image1.jpg", "path/to/image2.png", "path/to/image3.jpeg"]  #अपने छवि पथों से बदलें
titles = ["छवि 1", "छवि 2", "छवि 3"]
display_images(image_paths, titles)

यह फलन छवि पथ और वैकल्पिक शीर्षक स्वीकार करता है, गतिशील रूप से सबप्लॉट ग्रिड की गणना करता है, और छवियों को प्रदर्शित करता है। यह पुनरावृति दृष्टिकोण की तुलना में अधिक लचीला और पुन: प्रयोज्य है। Matplotlib स्थापित करना याद रखें: pip install matplotlib

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *