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