وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

Matplotlib: خطوط عمودی رسم کنید روی طرح

0 24
زمان لازم برای مطالعه: 4 دقیقه


معرفی

Matplotlib یکی از پرکاربردترین کتابخانه های تجسم داده در پایتون است. بیشتر محبوبیت Matplotlib از گزینه های سفارشی سازی آن ناشی می شود – می توانید تقریباً هر عنصری را از آن تغییر دهید. سلسله مراتب اشیاء.

در این آموزش نگاهی به این خواهیم داشت چگونه یک خط عمودی بکشیم روی یک طرح Matplotlib، که به ما امکان می دهد مناطق خاصی از طرح را بدون بزرگنمایی یا تغییر محدوده محور علامت گذاری و برجسته کنیم.

ایجاد یک پلات

بیایید ابتدا یک نمودار ساده با داده های تصادفی ایجاد کنیم:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

plt.show()

در اینجا، ما از NumPy برای تولید 150 نقطه داده تصادفی، در یک محدوده استفاده کرده ایم (0, 1).

matplotlib مقادیر تصادفی را رسم می کند

در حال حاضر، از آنجایی که ما یک را تنظیم کرده ایم seed، می توانیم این تصویر تصادفی را هر چند بار که بخواهیم تکرار کنیم. مثلا خطوط عمودی رسم کنیم روی را 20 و 100 نشانه ها

دو راه برای رسم خطوط وجود دارد، با استفاده از vlines() یا axvline() توابع نمونه PyPlot طبیعتاً می توانید این روش ها را نیز فراخوانی کنید روی را Axes هدف – شی.

رسم خطوط عمودی روی Matplotlib پلات با PyPlot.vlines()

بیایید با vlines() تابع:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

ax.vlines((20, 100), 0, 1, linestyles='dashed', colors='red')

plt.show()

این vlines() تابع چند آرگومان را می پذیرد – یک آرایه اسکالر یا یک بعدی از مقادیر X که می خواهید خطوطی را ترسیم کنید روی. ما عرضه کرده ایم (20, 100)، علامت گذاری دو نقطه، هر چند شما می توانید از 0..n در اینجا اشاره می کند. سپس ymin و ymax استدلال – اینها هستند ارتفاع از خطوط ما آنها را به عنوان از 0 به 1، از آنجایی که توزیع آن است np.random.rand() همچنین تماس بگیرید سپس، می‌توانید سبک‌هایی مانند linestyles یا colors، که گزینه های یک ظاهر طراحی معمولی Matplotlib را می پذیرند.

اجرای این کد منجر به موارد زیر می شود:

اضافه کردن خطوط عمودی به نمودار matplotlib با vlines()

ما دو خط عمودی داریم که به رنگ قرمز در نقطه چین قرار دارند 20 و 100 نکته ها روی محور X

این تابع به ما اجازه می دهد تا تنظیم کنیم ymin و ymax در مقادیر مشخص، در حالی که axvline() به ما اجازه می دهد تا ارتفاع را بر حسب درصد انتخاب کنیم، یا به سادگی اجازه می دهیم به طور پیش فرض از پایین به بالا رسم شود.

برای مثال زمانی که می‌خواهید خطوط را کوتاه‌تر یا طولانی‌تر کنید، این ویژگی مفید است. بیایید محدوده محور Y خود را تغییر دهیم تا نمای از آن را نیز شامل شود -10 به 10، بجای 0 و 1. داده های تصادفی ما همچنان در محدوده ای از خواهد بود (0, 1) بنابراین از منظری متفاوت به آن نگاه بهتری خواهیم داشت:

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

ax.set_ylim(-10, 10)
ax.vlines((20, 100), -2, 2, linestyles='dashed', colors='red')

محدوده محور را تغییر دهید و خطوط عمودی را ترسیم کنید on طرح matplotlib

در اینجا ، ما خطوط را طولانی تر از دامنه داده های تصادفی قرار داده ایم ، اما هنوز هم بسیار کوچکتر از اندازه Axes خود

رسم خطوط عمودی روی Matplotlib پلات با PyPlot.axvline()

حالا بیایید نگاهی به آن بیاندازیم axvline() تابع:

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

ax.set_ylim(-10, 10)
ax.axvline(20, color='red')
ax.axvline(100, color='red')

plt.show()

این محدودیت هایی دارد که عملکرد دیگر ندارد ، مانند اینکه فقط قادر به ترسیم است روی یک نقطه در یک زمان اگر بخواهیم نقشه بکشیم روی چندین نقطه مانند 20 و 100، باید دوبار تابع را فراخوانی کنیم.

همچنین واقعاً به ما اجازه نمی دهد که آن را مشخص کنیم linestyle پسندیدن vlines() اجازه دهید، هر چند، آن را نیاز ندارد ymin و ymax آرگومان ها به صورت پیش فرض اگر آنها را مانند ما حذف کنید ، آنها به سادگی از بالا تا پایین خواهند بود Axes:

خط عمودی بکش on matplotlib plot axvline

با این حال ، در صورت تمایل می توانید ارتفاع را تغییر دهید – این بار در اطراف ، از نظر درصد ، قد را تغییر می دهید. این درصدها بالا و پایین را می گیرند Axes با توجه به 0 ٪ در پایین خواهد بود ، در حالی که 100 ٪ در صدر قرار خواهد گرفت. بیایید یک خط از 50٪ تا 80٪ ترسیم کنیم:

fig, ax = plt.subplots(figsize=(12, 6))

np.random.seed(42)
x = np.random.rand(150)
ax.plot(x)

ax.set_ylim(-10, 10)
ax.axvline(20, 0.8, 0.5, color='red')
ax.axvline(100, 0.8, 0.5, color='red')

این تولید می کند:

درصد ارتفاع قطعه عمودی را تنظیم کنید on matplotlib axvline

نتیجه

در این آموزش به این موضوع پرداختیم روش رسم خطوط عمودی روی یک طرح Matplotlib.

اگر به تجسم داده‌ها علاقه دارید و نمی‌دانید از کجا شروع کنید، حتماً ما را بررسی کنید بسته کتاب روی تجسم داده ها در پایتون:

تجسم داده ها در پایتون با Matplotlib و Pandas کتابی است که طراحی شده است تا مبتدیان مطلق را با دانش پایه پایتون به Pandas و Matplotlib ببرد و به آنها اجازه دهد پایه ای قوی برای کار پیشرفته با این کتابخانه ها بسازند – از طرح های ساده گرفته تا طرح های سه بعدی متحرک با دکمه های تعاملی.

این به عنوان یک راهنمای عمیق عمل می کند که همه چیزهایی را که باید در مورد پانداها و Matplotlib بدانید، از جمله روش ساخت انواع طرح هایی که در خود کتابخانه تعبیه نشده اند را به شما آموزش می دهد.

تجسم داده ها در پایتونکتابی برای توسعه دهندگان پایتون مبتدی تا متوسط، شما را از طریق دستکاری ساده داده ها با پانداها راهنمایی می کند، کتابخانه های ترسیم هسته ای مانند Matplotlib و Seaborn را پوشش می دهد و به شما نشان می دهد که چگونه از کتابخانه های اعلامی و تجربی مانند Altair استفاده کنید. به طور خاص، در طول ۱۱ فصل، این کتاب ۹ کتابخانه پایتون را پوشش می‌دهد: Pandas، Matplotlib، Seaborn، Bokeh، Altair، Plotly، GGPlot، GeoPandas و VisPy.

این به عنوان یک راهنمای عملی و منحصر به فرد برای تجسم داده ها، در مجموعه ای از ابزارهایی که ممکن است در حرفه خود استفاده کنید، عمل می کند.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-11 20:08:05

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید