یکی از مراحل کلیدی در تجزیه و تحلیل داده‌ها، تجسم داده‌ها است، زیرا به شما کمک می‌کند ویژگی‌ها، گرایش‌ها و الگوهای مرتبطی را که ممکن است در داده‌های خام آشکار نباشند، متوجه شوید. Matplotlib یکی از موثرترین کتابخانه ها برای پایتون است و امکان ترسیم گرافیک های ثابت، متحرک و تعاملی را فراهم می کند.

این راهنما قابلیت های Matplotlib را با تمرکز بررسی می کند روی حل مشکلات خاص تجسم داده ها و ارائه مثال های عملی برای اعمال در پروژه های شما.

در اینجا چیزی است که ما قصد داریم در این مقاله به آن بپردازیم:

  • اهمیت تجسم داده ها در تجزیه و تحلیل داده ها

  • مروری کوتاه بر Matplotlib

  • شروع کار با Matplotlib

    • نصب و راه اندازی

    • چگونه اولین طرح خود را بسازیم

    • کاوش در انواع مختلف قطعه ها

  • سفارشی سازی طرح های پیشرفته

    • روش کار با پلات های متعدد

    • چگونه زیبایی شناسی طرح را تقویت کنیم

    • روش ذخیره و صادرات قطعه ها

  • توطئه و انیمیشن تعاملی

    • ویژگی های تعاملی در Matplotlib

    • روش ایجاد انیمیشن

  • روش بهینه سازی نمودارها برای مجموعه داده های بزرگ

    • تکنیک های رسم کارآمد برای مجموعه داده های بزرگ

    • تجسم داده های آماری

  • تله‌های متداول تجسم و روش اجتناب از آنها

    • بیش از حد توطئه

    • ترازوها و محورهای گمراه کننده

    • استفاده نادرست از رنگ

    • استفاده گمراه کننده از نقشه های سه بعدی

    • استفاده گمراه کننده از نمودارهای منطقه

  • نتیجه گیری

اهمیت تجسم داده ها در تجزیه و تحلیل داده ها

با فرض اینکه با داده های فروش یک زنجیره بزرگ از فروشگاه ها سر و کار دارید. داده‌های خام ممکن است شامل صدها یا هزاران ردیف، با ستون‌های احتمالی مانند دسته‌های محصول، مناطق فروش و درآمدهای ماهانه باشد. این مفاهیم مفید و رویکردهای تحلیلی داده‌های خام، داده‌ها را به شیوه‌ای بسیار پیچیده ارائه می‌کنند که می‌تواند برای هر کسی بیگانه باشد.

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

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

مروری کوتاه بر Matplotlib

Matplotlib که در حال حاضر یکی از محبوب‌ترین نرم‌افزارهای ترسیمی است که در حال حاضر در محیط پایتون اجرا می‌شود، توسط جان هانتر در سال 2003 راه‌اندازی شد. با آن می‌توان اشکال مختلفی از نمودارهای ثابت، پویا و حتی متحرک را به دست آورد که آن را تبدیل به ابزاری ضروری برای هر دانشمند، مهندس یا تحلیلگر داده است.

برخی از مشکلات رایجی که Matplotlib می تواند به حل آنها کمک کند عبارتند از:

  • مجموعه داده های بزرگ را برای شناسایی الگوها و موارد پرت تجسم کنید.

  • طراحی گرافیک پیچیده نمونه برای چاپ مقالات دانشگاهی.

  • ترکیب داده های جمع آوری شده از منابع مختلف به تصاویر تعاملی و آموزنده.

  • انطباق روندها در نمودارها برای شفاف سازی اطلاعاتی که به تصویر کشیده می شود.

شروع کار با Matplotlib

نصب و راه اندازی

قبل از اینکه به ایجاد نمودارها بپردازیم، اجازه دهید Matplotlib را نصب و راه اندازی کنیم. می توانید Matplotlib را با استفاده از آن نصب کنید pip یا conda:

pip install matplotlib

از طرف دیگر، اگر از Anaconda استفاده می کنید:

conda install matplotlib

برای تایید نصب:

import matplotlib
print(matplotlib.__version__)

چگونه اولین طرح خود را بسازیم

بیایید با حل یک مشکل رایج شروع کنیم: بیایید فرض کنیم که شما مجموعه ای از داده ها دارید که دمای روزانه را برای یک ماه مشخص ثبت می کند و می خواهید تغییرات دما را مطالعه کنید.

در اینجا روش ایجاد یک طرح خط ساده برای تجسم این روند آورده شده است:

import matplotlib.pyplot as plt
import numpy as np

# Simulating daily temperature data
days = np.arange(1,20)
temperature = np.random.normal(loc=25, scale=5, size=len(days))

plt.plot(days, temperature, marker='o')
plt.title('Daily Temperatures in August')
plt.xlabel('Day')
plt.ylabel('Temperature (°C)')
plt.grid(True)

یک طرح ساده

  • استفاده کردیم np.arange برای ساخت یک سری روز.

  • np.random.normal داده های دما را با میانگین (loc) برابر با 20 درجه سانتیگراد و انحراف معیار (scale) برابر با 5 درجه سانتیگراد.

  • plt.plot برای هر روز یک نمودار خطی با نشانگرها ایجاد می کند.

  • عناوین و برچسب‌ها اضافه شدند تا طرح آموزنده باشد.

کاوش در انواع مختلف قطعه ها

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

طرح های خطی

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

months = np.arange(1,13)
sales = np.random.randint(2000, 4000, size=len(months))
plt.plot(months, sales, color='red', linestyle='--', marker='o')
plt.title("Monthly Sales of Product ")
plt.xlabel("Month")
plt.ylabel("Sales (Units)")
plt.grid(True)
plt.show()

استفاده از خطوط خطی برای پیگیری فروش ماهانه

پلات های پراکنده

از آنها برای ساخت روابط ساده بین دو متغیر داده استفاده می شود که در آن ظاهر نقاط مقایسه می شود. به عنوان مثال، تجسم رابطه بین هزینه های تبلیغات و فروش:

ad_spend = np.random.randint(50, 1000, size=50)
sales = ad_spend * np.random.uniform(0.8, 1.2, size=50)

plt.scatter(ad_spend, sales, color='blue')
plt.title("Advertisement Spending vs. Sales")
plt.xlabel("Ad Spend (USD)")
plt.ylabel("Sales (Units)")
plt.show()

نمایش طرح پراکنده

نمودارهای میله ای

نمودارهای میله ای برای مقایسه داده های طبقه بندی شده موثر هستند. به عنوان مثال، تجسم کل درآمد تولید شده توسط چندین گروه محصول:

groupings = ['Musical Instruments', 'Furniture', 'Clothing', 'Food']
revenue = [50000, 30000, 20000, 40000]

plt.bar(groupings, revenue, color='green')
plt.title("Revenue by Product Grouping")
plt.xlabel("Group")
plt.ylabel("Revenue (EURO)")
plt.show()

تجسم نمودار میله ای

هیستوگرام ها

آنها برای مشاهده توزیع داده های عددی بر اساس استفاده می شوند روی فرکانس به عنوان مثال، تجسم توزیع سن مشتری در یک نظرسنجی:

ages = np.random.randint(18, 65, size=2000)

plt.hist(ages, bins=10, color='purple', edgecolor='black')
plt.title("Age Distribution of Survey Participants")
plt.xlabel("Age")
plt.ylabel("Number of Participants")
plt.show()

هیستوگرام توزیع سن مشتری را نشان می دهد

نمودارهای پای

نمودار دایره ای برای نمایش درصد داده ها در قالب گرافیکی استفاده می شود. به عنوان مثال، تجسم سهم بازار شرکت های مختلف:

companies = ['Company W', 'Company X', 'Company Y', 'Company Z']
market_share = [40, 30, 20, 10]

plt.pie(market_share, labels=companies, autopct='%1.1f%%', colors=['blue', 'orange', 'green', 'red'])
plt.title("Market Share by Company")
plt.show()

نمایش نمودار دایره ای

سفارشی سازی طرح های پیشرفته

روش کار با پلات های متعدد

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

regions = ['North', 'South', 'East', 'West']
sales_data = np.random.randint(500, 5000, size=(4, 12))

fig, axs = plt.subplots(2, 2, figsize=(10, 8))
fig.suptitle('Monthly Sales by Region')

for i, region in enumerate(regions):
    ax = axs[i // 2, i % 2]
    ax.plot(months, sales_data[i], marker='o')
    ax.set_title(region)
    ax.set_xlabel("Month")
    ax.set_ylabel("Sales (Units)")

plt.tight_layout()
plt.show()

نمودارهای نمودارهای چندگانه برای مقایسه روند فروش

چگونه زیبایی شناسی طرح را تقویت کنیم

در میان گزینه‌های معمولی برای طرح‌های متداول، امکان کنترل ظاهر یک طرح برای آموزنده و زیباشناختی کردن آن است.

پیشنهاد می‌کنیم بخوانید:  متد ()String.replace پایتون

در اینجا یک مثال است:

plt.plot(days, temperature, color='orange', marker='x', linestyle='-')
plt.title("Daily Temperatures in August", fontsize=16)
plt.xlabel("Day", fontsize=12)
plt.ylabel("Temperature (°C)", fontsize=12)
plt.grid(True)
plt.legend(['Temperature'], loc='upper right')
plt.annotate('Coldest Day', xy=(5, 10), xytext=(7, 5),
             arrowprops=dict(facecolor='black', arrowstyle='->'))
plt.show()

تصویری که طرحی زیباشناختی دلپذیر را نشان می دهد

کد رنگ ها و نشانگرها، سبک های خط، عناوین و برچسب های محور را با اندازه فونت دلخواه، شبکه تغییر می دهد. روی، افسانه اضافه می کند و سردترین روز را با یک فلش حاشیه نویسی می کند. این پیشرفت ها طرح را آموزنده و منظم می کند و در نتیجه پیامی حرفه ای و واضح ارائه می شود.

روش ذخیره و صادرات قطعه ها

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

plt.plot(days, temperature)
plt.title("Daily Temperatures in August")
plt.xlabel("Day")
plt.ylabel("Temperature (°C)")

# Saving the plot
plt.savefig("daily_temperatures_august.png", dpi=300, bbox_inches='tight')
plt.savefig("daily_temperatures_august.pdf", format='pdf', bbox_inches='tight')

را dpi پارامتر وضوح نمودار ذخیره شده را کنترل می کند و bbox_inches="tight" اطمینان حاصل کنید که طرح بدون فضای خالی اضافی ذخیره می شود.

توطئه و انیمیشن تعاملی

ویژگی های تعاملی در Matplotlib

شما همچنین می توانید طرح های خود را تعاملی کنید. به عنوان مثال، به جای مشاهده کل طرح، ممکن است به منطقه مورد نظر نزدیک‌تر شود، یا زمانی که طرح باید به نحوی به دلیل ورودی کاربر تغییر کند.

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.cos(x)

fig, ax = plt.subplots()
ax.plot(x, y)

def on_click(event):
    # This function is called when the plot is clicked
    print(f"The Coordinates were clicked at: ({event.xdata}, {event.ydata})")

fig.canvas.mpl_connect('button_press_event', on_click)
plt.show()

کد یک نمودار موج کسینوس تولید می کند و یک کنترل کننده رویداد کلیک را تنظیم می کند روی آن را با on_click نام هنگامی که شما در هر نقطه کلیک کنید روی در نمودار، کنترل کننده مختصات کلیک را چاپ می کند روی پایتون console.

روش ایجاد انیمیشن

انیمیشن‌ها می‌توانند در نشان دادن چگونگی تکامل چیزها مفید باشند. به عنوان مثال، افزایش قیمت سهام یا دوره نهفتگی یک بیماری:

import matplotlib.animation as animation

fig, ax = plt.subplots()
line, = ax.plot(x, y)

def update(frame):
    line.set_ydata(np.cos(x + frame / 10))
    return line,

ani = animation.FuncAnimation(fig, update, frames=range(100), blit=True)
plt.show()

این کد یک موج کسینوس متحرک را تشکیل می دهد که با گذشت زمان به نظر می رسد که به صورت افقی حرکت می کند و تصوری از حرکت موج از چپ یا راست ایجاد می کند. اگر داده ها باید بر حسب تغییر با زمان نمایش داده شوند، چنین انیمیشن هایی می توانند مفید باشند.

روش بهینه سازی نمودارها برای مجموعه داده های بزرگ

اندازه مجموعه داده‌ای که هنگام برخورد با کلان داده در نظر گرفته می‌شود، با مقدار داده مشخص می‌شود، بنابراین، اهمیت عملکرد باید بیان شود. اغلب بسیار کند است و برای ترسیم مقادیر زیادی از داده ها حافظه زیادی لازم است. در اینجا نکاتی وجود دارد که باید از آنها برای استفاده حداکثری از نقشه های خود استفاده کنید.

تکنیک های رسم کارآمد برای مجموعه داده های بزرگ

کاهش نمونه

در این process، امتیازات کمتری را نسبت به آنچه که طرح اصلی دارد نمونه برداری می کنید.

import matplotlib.pyplot as plt
import numpy as np

# Generate large dataset
x_huge = np.linspace(0, 100, 10000)
y_huge = np.sin(x_huge) + np.random.normal(0, 0.1, size=x_huge.shape)

# Downsample the data
x_downsampled = x_huge[::10]
y_downsampled = y_huge[::10]

plt.plot(x_downsampled, y_downsampled)
plt.title("Downsampled Plot")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

یک تصویر طرح پایین نمونه

با این کار تعداد نقاط رسم نمودار را کاهش می دهیم روی و یک نقطه را بعد از فاصله 10 نقطه رسم کنید. باری که باید ارائه شود را کاهش می دهد اما این کار را بدون تحریف ساختار کلی داده ها انجام می دهد.

تجمیع داده ها

تجمیع داده ها یک است process که در آن داده‌های جمع‌آوری‌شده به شکل عددی در کلاس‌هایی گروه‌بندی می‌شوند تا به جدول‌های مشاهدات زیر یک کلاس معین برسند.

import matplotlib.pyplot as plt
import numpy as np

# Generate large dataset
x_huge = np.linspace(0, 100, 10000)
y_huge = np.sin(x_huge) + np.random.normal(0, 0.1, size=x_huge.shape)

# Aggregate the data into bins
bins = np.linspace(0, 100, 100)
y_aggregated = [np.mean(y_huge[(x_huge >= bins[i]) & (x_huge < bins[i+1])]) for i in range(len(bins)-1)]

plt.plot(bins[:-1], y_aggregated)
plt.title("Aggregated Plot")
plt.xlabel("X")
plt.ylabel("Average Y")
plt.show()

تصویر طرح تجمیع شده

این process تعداد نقاط داده مورد نیاز برای نشان دادن توزیع داده را کاهش می دهد و خواندن و تفسیر نمودار را آسان تر می کند و در عین حال روند کلی داده های اصلی را ثبت می کند.

تجسم داده های آماری

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

توطئه های جعبه

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

import matplotlib.pyplot as plt
import numpy as np

# Generate random data
data = np.random.randn(1000)
plt.boxplot(data)
plt.title("Box Plot")
plt.ylabel("Values")
plt.show()

نمایش طرح جعبه

آنها به ویژه در تشخیص نقاط پرت موقعیتی و مقایسه پراکندگی و تقارن دو متغیر استفاده می شوند.

پیشنهاد می‌کنیم بخوانید:  روش معکوس کردن یک رشته در جاوا اسکریپت معکوس کردن یک رشته در توسعه غیرمعمول نیست و برای سؤالات مصاحبه سطح پایه نسبتاً محبوب است. با جاوا اسکریپت، ما راه های زیادی برای معکوس کردن یک رشته داریم که تا حدودی شبیه به معکوس کردن یک آرایه است. ما می توانیم ترکیبی از متد split() رشته و همچنین متد reverse() و join() آرایه (از آنجایی که...

طرح ویولن

از نمودار جعبه ای و همچنین نمودار چگالی برای ارائه اطلاعات خاص تر در مورد توزیع ارزش متغیرهای داده شده استفاده می کند.

import matplotlib.pyplot as plt
import numpy as np

# Generate random data
data = np.random.randn(1000)
plt.violinplot(data)
plt.title("Violin Plot")
plt.ylabel("Values")
plt.show()

نمایش طرح ویولن

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

تله‌های متداول تجسم و روش اجتناب از آنها

بیش از حد توطئه

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

import matplotlib.pyplot as plt
import numpy as np

# Generate large dataset
x = np.random.rand(10000)
y = np.random.rand(10000)

# Plot without transparency (over-plotting)
plt.scatter(x, y)
plt.title("Scatter Plot with Over-plotting")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

# Plot with transparency to reduce over-plotting
plt.scatter(x, y, alpha=0.1)  # Set alpha for transparency
plt.title("Scatter Plot with Reduced Over-plotting")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

تصویری از طرح بیش از حد و کاهش بیش از حد طرح

در طرح اول، بدون شفافیت، نقاط داده به طور قابل توجهی با هم همپوشانی دارند و شناسایی هر گونه الگو یا ناحیه چگالی را دشوار می کند. در طرح دوم، شفافیت (alpha=0.1) روی نقاط داده اعمال می‌شود و به نواحی متراکم‌تر اجازه می‌دهد تا در عین کاهش بهم ریختگی آشکارتر شوند. این تکنیک تفسیر توزیع داده های نمودار را آسان تر می کند.

ترازوها و محورهای گمراه کننده

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

import matplotlib.pyplot as plt
import numpy as np

# Generate data
x = np.arange(10)
y1 = np.random.randint(50, 100, size=10)
y2 = y1 + np.random.randint(-5, 5, size=10)

# Plot with truncated y-axis
plt.plot(x, y1, label='Data 1')
plt.plot(x, y2, label='Data 2')
plt.ylim(90, 100)  # Truncated y-axis
plt.title("Plot with Truncated Y-Axis")
plt.xlabel("X")
plt.ylabel("Y")
plt.legend()
plt.show()

# Plot with full y-axis
plt.plot(x, y1, label='Data 1')
plt.plot(x, y2, label='Data 2')
plt.title("Plot with Full Y-Axis")
plt.xlabel("X")
plt.ylabel("Y")
plt.legend()
plt.show()

محور Y کوتاه در مقابل محور Y کامل

آنچه از نمودار اول می توان جمع آوری کرد این است که محدوده محور y ثابت است. این نموداری را نشان می دهد که کاملا گمراه کننده است. نمودار دوم از محور کامل y استفاده می کند که نمایش دقیق تری از داده ها را ارائه می دهد.

استفاده نادرست از رنگ

پیوند تا حدی ضعیف در تجسم داده ها، روش انتخاب رنگ ها و اغلب استفاده نادرست است. مسائل مربوط به تضاد کم، انتخاب رنگ‌هایی است که افراد کوررنگ نمی‌توانند آن‌ها را متمایز کنند، و ایجاد اهمیت رنگ در جایی که وجود ندارد.

import matplotlib.pyplot as plt
import numpy as np

# Generate data
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# Plot with non-colorblind-friendly palette
plt.plot(x, y1, color='red', label='sin(x)')
plt.plot(x, y2, color='green', label='cos(x)')
plt.title("Plot with Non-Colorblind-Friendly Colors")
plt.xlabel("X")
plt.ylabel("Y")
plt.legend()
plt.show()

# Plot with colorblind-friendly palette
plt.plot(x, y1, color='#0072B2', label='sin(x)')  # Blue
plt.plot(x, y2, color='#D55E00', label='cos(x)')  # Orange
plt.title("Plot with Colorblind-Friendly Colors")
plt.xlabel("X")
plt.ylabel("Y")
plt.legend()
plt.show()

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

طرح اول از قرمز و سبز استفاده می کند که برای کاربرانی که کوررنگی قرمز-سبز دارند بسیار دشوار است. طرح دوم از یک پالت دوستدار وب کوررنگ استفاده می کند تا اطمینان حاصل شود که همه می توانند طرح را بدون گیج شدن توسط رنگ ها درک کنند.

استفاده گمراه کننده از نقشه های سه بعدی

طرح های سه بعدی می توانند از نظر بصری جذاب باشند، اما اغلب پیچیدگی های غیر ضروری را اضافه می کنند و در صورت عدم استفاده مناسب، می توانند گمراه کننده باشند. زمانی که بعد سوم واقعاً به تجسم ارزش می‌افزاید، مؤثرتر هستند، مانند هنگام نمایش داده‌های چند متغیره. با این حال، نمودارهای سه بعدی، مقایسه مقادیر در نمودارها را کمی دشوار می کند.

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

# Generate data
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))

# 3D plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z, cmap='viridis')
plt.title("3D Plot")
plt.show()

# 2D contour plot
plt.contourf(X, Y, Z, cmap='viridis')
plt.colorbar(label='Z value')
plt.title("2D Contour Plot")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

طرح سه بعدی در مقابل طرح کانتور دو بعدی

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

استفاده گمراه کننده از نمودارهای منطقه

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

import matplotlib.pyplot as plt
import numpy as np

# Generate data
x = np.arange(0, 10, 1)
y1 = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y2 = np.array([1, 3, 2, 5, 4, 6, 5, 7, 6, 8])

# Stacked area chart (potentially misleading)
plt.fill_between(x, y1, color='skyblue', alpha=0.5)
plt.fill_between(x, y2, color='orange', alpha=0.5)
plt.title("Misleading Stacked Area Chart")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

# Improved area chart with non-overlapping areas
plt.fill_between(x, y1, color='skyblue', alpha=0.5)
plt.fill_between(x, y1 + y2, y1, color='orange', alpha=0.5)
plt.title("Improved Stacked Area Chart")
plt.xlabel("X")
plt.ylabel("Y")
plt.show()

نمایشی از استفاده از نمودارهای منطقه

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

نتیجه گیری

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

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

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