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

سرور مجازی NVMe

Matplotlib: نقشه های چند خط را در مقیاس های مشابه و مختلف ترسیم کنید

0 2
زمان لازم برای مطالعه: 5 دقیقه


معرفی

Matplotlib یکی از پرکاربردترین کتابخانه های تجسم داده در پایتون است. از تجسم های ساده تا پیچیده ، بیشتر کتابخانه است.

در این آموزش نگاهی به این خواهیم داشت روش رسم خطوط چندگانه در Matplotlib – روی همان Axes یا Figure.

اگر می خواهید اطلاعات بیشتری در مورد توطئه های خط خط به طور کلی و همچنین سفارشی کردن آنها بخوانید ، حتماً راهنمای ما را بخوانید روی پلاتینگ خطوط پلات با Matplotlib.

طرح های چند خطی را در Matplotlib ترسیم کنید

بسته به روی سبکی که از آن استفاده می کنید ، OOP یا MATLAB به سبک ، یا از آن استفاده می کنید plt به عنوان مثال، یا ax به عنوان مثال به طرح، با همان رویکرد.

برای رسم نمودارهای چند خطی در Matplotlib، به سادگی آن را به طور مکرر فراخوانی کنید plot() عملکرد ، که تغییرات را در همان اعمال می کند Figure هدف – شی:

import matplotlib.pyplot as plt

x = (1, 2, 3, 4, 5, 6)
y = (2, 4, 6, 5, 6, 8)
y2 = (5, 3, 7, 8, 9, 6)

fig, ax = plt.subplots()

ax.plot(x, y)
ax.plot(x, y2)
plt.show()

بدون تنظیم هیچ گونه پرچم سفارشی سازی، نقشه رنگی پیش فرض اعمال می شود و هر دو طرح خط را ترسیم می کند روی همان Figure شی، و تنظیم رنگ برای تمایز بین آنها:

Matplotlib: نقشه های چند خط را در مقیاس های مشابه و مختلف ترسیم کنید

اکنون، بیایید با استفاده از NumPy تعدادی دنباله تصادفی ایجاد کنیم و با تنظیم یک رنگ خاص برای هر یک و برچسب زدن آنها، خطوط خطوط را کمی سفارشی کنیم:

import matplotlib.pyplot as plt
import numpy as np

line_1 = np.random.randint(low = 0, high = 50, size = 50)
line_2 = np.random.randint(low = -15, high = 100, size = 50)

fig, ax = plt.subplots()

ax.plot(line_1, color = 'green', label = 'Line 1')
ax.plot(line_2, color = 'red', label = 'Line 2')
ax.legend(loc = 'upper left')
plt.show()

ما مجبور نیستیم مقادیر محور X را به نمودار خطی ارائه کنیم، در این صورت، مقادیر از 0..n اعمال خواهد شد، جایی که n آخرین عنصر در داده هایی است که شما رسم می کنید. در مورد ما، ما دو دنباله از داده ها داریم – line_1 و line_2، که هر دو رسم خواهند شد روی همان محور X

در حین ترسیم، رنگ هایی را با استفاده از رنگ به آنها اختصاص داده ایم color آرگومان و برچسب هایی برای افسانه با استفاده از label بحث و جدل. این نتیجه در:

Matplotlib: نقشه های چند خط را در مقیاس های مشابه و مختلف ترسیم کنید

پلات های چند خطی را با مقیاس های مختلف ترسیم کنید

گاهی اوقات، ممکن است دو مجموعه داده متناسب با نمودارهای خطی داشته باشید، اما مقادیر آنها به طور قابل توجهی متفاوت است و مقایسه هر دو خط را دشوار می کند. به عنوان مثال، اگر line_1 دنباله ای از اعداد به طور تصاعدی در حال افزایش بود، در حالی که line_2 دنباله ای خطی در حال افزایش داشت – مطمئناً و به اندازه کافی سریع، line_1 ارزش های بسیار بزرگتر از line_2، که دومی از نظر محو می شود.

بیایید از NumPy برای ایجاد یک دنباله نمایی از اعداد استفاده کنیم و آن را در کنار یک خط دیگر رسم کنیم. روی همان Axes، به صورت خطی:

import matplotlib.pyplot as plt
import numpy as np

linear_sequence = np.linspace(0, 10, 10)

exponential_sequence = np.exp(linear_sequence)


fig, ax = plt.subplots()

ax.plot(linear_sequence)
ax.plot(exponential_sequence)
plt.show()

اجرای این کد نتیجه می دهد:

Matplotlib: نقشه های چند خط را در مقیاس های مشابه و مختلف ترسیم کنید

رشد تصاعدی در exponential_sequence خیلی سریع از تناسب خارج می شود، و به نظر می رسد که مطلقاً هیچ تفاوتی در آن وجود ندارد linear_sequence، زیرا نسبت به روند نمایی دنباله دیگر بسیار ناچیز است.

حالا بیایید طرح را ترسیم کنیم exponential_sequence روی یک مقیاس لگاریتمی، که یک خط مستقیم بصری ایجاد می کند، زیرا مقیاس Y به طور تصاعدی افزایش می یابد. اگر آن را طرح کنیم روی یک مقیاس لگاریتمی، و linear_sequence فقط با همان ثابت افزایش می یابد، ما دو خط همپوشانی خواهیم داشت و فقط می توانیم خطی را که بعد از خط اول ترسیم شده است ببینیم.

بیایید تغییر دهیم linear_sequence زمانی که هر دو را ترسیم کنیم، کمی آن را قابل مشاهده کنیم:

import matplotlib.pyplot as plt
import numpy as np


linear_sequence = (1, 2, 3, 4, 5, 6, 7, 10, 15, 20)
exponential_sequence = np.exp(np.linspace(0, 10, 10))

fig, ax = plt.subplots()


ax.plot(linear_sequence, color='red')
ax.tick_params(axis='y', labelcolor='red')


ax2 = ax.twinx()


ax2.plot(exponential_sequence, color='green')
ax2.set_yscale('log')
ax2.tick_params(axis='y', labelcolor='green')

plt.show()

این بار، ما باید از رابط OOP استفاده کنیم، زیرا در حال ایجاد یک رابط جدید هستیم Axes نمونه، مثال. یکی Axes یک مقیاس دارد، بنابراین یک مقیاس جدید در همان موقعیت اول ایجاد می کنیم و مقیاس آن را روی یک لگاریتمی قرار می دهیم و دنباله نمایی را رسم می کنیم.

این نتیجه در:

Matplotlib: نقشه های چند خط را در مقیاس های مشابه و مختلف ترسیم کنید

ما همچنین رنگ‌های برچسب تیک را تغییر داده‌ایم تا با رنگ خطوط خطوط مطابقت داشته باشد، در غیر این صورت تشخیص اینکه کدام خط است دشوار خواهد بود. روی کدام مقیاس

پلات های چند خطی را با چند محور Y ترسیم کنید

در نهایت، می‌توانیم همان مقیاس (خطی، لگاریتمی و غیره) را اعمال کنیم، اما مقادیر متفاوتی داشته باشیم روی محور Y هر نمودار خط. این از طریق داشتن چندین محور Y به دست می آید، روی ناهمسان Axes اشیاء، در همان موقعیت.

به عنوان مثال linear_sequence از 20 بالاتر نمی رود روی محور Y، در حالی که exponential_sequence به 20000 می رسد. ما می توانیم هر دو را ترسیم کنیم به صورت خطی، به سادگی با ترسیم آنها روی ناهمسان Axes اشیاء، در یک موقعیت، که هر کدام تیک های محور Y را به طور خودکار تنظیم می کنند تا برای داده هایی که ما در آن تغذیه می کنیم، قرار گیرند:

import matplotlib.pyplot as plt
import numpy as np


linear_sequence = (1, 2, 3, 4, 5, 6, 7, 10, 15, 20)
exponential_sequence = np.exp(np.linspace(0, 10, 10))

fig, ax = plt.subplots()


ax.plot(linear_sequence, color='red')
ax.tick_params(axis='y', labelcolor='red')


ax2 = ax.twinx()


ax2.plot(exponential_sequence, color='green')
ax2.tick_params(axis='y', labelcolor='green')

plt.show()

ما دوباره دیگری ایجاد کرده ایم Axes در همان موقعیت مورد اول است، بنابراین ما می توانیم ترسیم کنیم روی همان مکان در Figure اما متفاوت Axes اشیاء، که به ما امکان می دهد مقادیر را برای هر محور Y به صورت جداگانه تنظیم کنیم.

بدون اینکه این بار مقیاس Y را روی لگاریتمی تنظیم کنیم، هر دو به صورت خطی رسم می شوند:

Matplotlib: نقشه های چند خط را در مقیاس های مشابه و مختلف ترسیم کنید

نتیجه

در این آموزش، روش ترسیم خطوط چندگانه را بررسی کرده ایم روی همان Figure یا Axes در Matplotlib و Python. ما روش طرح ریزی را پوشش داده ایم روی همان Axes با همان مقیاس و محور Y و همچنین روش رسم روی همان Figure با مقیاس های مختلف و یکسان محور Y.

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

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

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

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

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

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



منتشر شده در 1403-01-11 14:46:04

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

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

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