آموزش Matplotlib | افزودن برچسب‌ها و توضیحات

برچسب‌گذاری نقاط داده

در این بخش، یاد می‌گیرید که چگونه به نقاط روی نمودار خود برچسب اضافه کنید تا داده‌ها برای خواننده واضح‌تر شوند. فرض کنید یک نمودار خطی دارید که تغییرات دما را در طول هفته نشان می‌دهد. برچسب‌گذاری نقاط به شما کمک می‌کند تا مقدار دقیق هر نقطه را روی خود نمودار نمایش دهید.

مراحل انجام کار:

  1. ترسیم نمودار ساده: ابتدا یک نمودار خطی با داده‌های فرضی رسم می‌کنیم.

    import matplotlib.pyplot as plt
    x = [1, 2, 3, 4, 5]
    y = [10, 20, 25, 30, 15]
    plt.plot(x, y, marker='o')
  2. استفاده از تابع annotate: برای برچسب‌گذاری دقیق هر نقطه، از تابع annotate استفاده می‌کنیم. این تابع سه پارامتر اصلی دارد:

    • متن برچسب: چیزی که می‌خواهید نمایش دهید (معمولاً مقدار y).
    • مختصات نقطه: محل دقیق نقطه روی نمودار به صورت (x, y).
    • xytext: مختصات محل قرارگیری متن (اغلب بالای نقطه قرار می‌گیرد).

    مثال:

    for i, (x_val, y_val) in enumerate(zip(x, y)):
       plt.annotate(str(y_val), xy=(x_val, y_val), xytext=(x_val, y_val + 2))

    در این کد، یک حلقه روی تمام نقاط می‌زنیم. str(y_val) مقدار عددی را به رشته تبدیل می‌کند تا روی نمودار نشان داده شود. xytext متن را ۲ واحد بالاتر از نقطه قرار می‌دهد.

  3. برچسب‌گذاری با text: اگر نیاز به برچسب‌گذاری ساده‌تری دارید (بدون فلش یا تنظیمات پیچیده)، می‌توانید از تابع plt.text استفاده کنید:

    for i, (x_val, y_val) in enumerate(zip(x, y)):
       plt.text(x_val, y_val + 2, str(y_val), ha='center')

    پارامتر ha='center' باعث می‌شود متن دقیقاً وسط نقطه قرار گیرد.

  4. نکات مهم:

    • اگر نقاط زیادی دارید، برچسب‌ها ممکن است روی هم بیفتند. برای جلوگیری، می‌توانید از plt.annotate با پارامتر arrowprops استفاده کنید تا یک فلش از متن به نقطه بکشید.
    • همیشه سطح داده‌ها را در نظر بگیرید؛ برای نمودارهای شلوغ، بهتر است فقط روی نقاط کلیدی برچسب بزنید.

نتیجه: با اجرای کد زیر، یک نمودار با برچسب روی هر نقطه خواهید داشت:

import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 15]
plt.plot(x, y, marker='o')
for i, (x_val, y_val) in enumerate(zip(x, y)):
    plt.text(x_val, y_val + 2, str(y_val), ha='center')
plt.show()

این روش به شما امکان می‌دهد تا داده‌های خود را شفاف‌تر و قابل‌فهم‌تر نمایش دهید.

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3