از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Matplotlib: خطوط عمودی رسم کنید روی طرح
سرفصلهای مطلب
معرفی
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)
.
در حال حاضر، از آنجایی که ما یک را تنظیم کرده ایم 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 را می پذیرند.
اجرای این کد منجر به موارد زیر می شود:
ما دو خط عمودی داریم که به رنگ قرمز در نقطه چین قرار دارند 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')
در اینجا ، ما خطوط را طولانی تر از دامنه داده های تصادفی قرار داده ایم ، اما هنوز هم بسیار کوچکتر از اندازه 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
:
با این حال ، در صورت تمایل می توانید ارتفاع را تغییر دهید – این بار در اطراف ، از نظر درصد ، قد را تغییر می دهید. این درصدها بالا و پایین را می گیرند 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')
این تولید می کند:
نتیجه
در این آموزش به این موضوع پرداختیم روش رسم خطوط عمودی روی یک طرح 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