آموزش Matplotlib | افزودن برچسبها و توضیحات
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
برچسبگذاری نقاط داده
در این بخش، یاد میگیرید که چگونه به نقاط روی نمودار خود برچسب اضافه کنید تا دادهها برای خواننده واضحتر شوند. فرض کنید یک نمودار خطی دارید که تغییرات دما را در طول هفته نشان میدهد. برچسبگذاری نقاط به شما کمک میکند تا مقدار دقیق هر نقطه را روی خود نمودار نمایش دهید.
مراحل انجام کار:
-
ترسیم نمودار ساده: ابتدا یک نمودار خطی با دادههای فرضی رسم میکنیم.
import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [10, 20, 25, 30, 15] plt.plot(x, y, marker='o') -
استفاده از تابع
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متن را ۲ واحد بالاتر از نقطه قرار میدهد. -
برچسبگذاری با
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'باعث میشود متن دقیقاً وسط نقطه قرار گیرد. -
نکات مهم:
- اگر نقاط زیادی دارید، برچسبها ممکن است روی هم بیفتند. برای جلوگیری، میتوانید از
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()
این روش به شما امکان میدهد تا دادههای خود را شفافتر و قابلفهمتر نمایش دهید.
برای ثبت پرسش ابتدا در سایت وارد شوید.