متن خبر

چگونه با Matplotlib شروع کنیم – با مثال های کد و تجسم

چگونه با Matplotlib شروع کنیم – با مثال های کد و تجسم

شناسهٔ خبر: 777070 -




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

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

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

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

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

شروع کار با Matplotlib

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

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

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

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

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

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

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

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

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

نحوه ایجاد انیمیشن

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

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

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

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

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

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

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

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

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

نتیجه گیری

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

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

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

تجسم داده‌ها فرآیندی است که داده‌ها را به شکل‌های قابل درک و تجزیه‌پذیرتر برای تصمیم‌گیری تبدیل می‌کند. 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() 

استفاده <a href= از خطوط خطی برای پیگیری فروش ماهانه" width="576" height="448" loading="lazy">

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

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

 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() 

هیستوگرام توزیع سن مشتری <a href= را نشان می دهد" width="576" height="462" loading="lazy">

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

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

 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() 

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

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

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

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

 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() 

تصویری <a href= که طرحی زیباشناختی را نشان می دهد" width="576" height="457" loading="lazy">

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

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

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

 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 تنظیم می کند. هنگامی که روی هر نقطه از نمودار کلیک می کنید، کنترل کننده مختصات کلیک را در کنسول پایتون چاپ می کند.

نحوه ایجاد انیمیشن

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

 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()

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

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

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

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

کاهش نمونه

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

 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 نقطه نقطه ای را رسم می کنیم. باری که باید ارائه شود را کاهش می دهد، اما این کار را بدون تحریف ساختار کلی داده ها انجام می دهد.

تجمیع داده ها

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

 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() 

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

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

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

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

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

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

 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() 

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

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

طرح ویولن

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

 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() 

تصویری <a href= از طرح بیش از حد و کاهش بیش از حد طرح" width="363" height="576" loading="lazy">

در طرح اول، بدون شفافیت، نقاط داده به طور قابل توجهی با هم همپوشانی دارند و شناسایی هر گونه الگو یا ناحیه چگالی را دشوار می کند. در نمودار دوم، شفافیت ( 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() 

تصویری <a href= که اهمیت رنگ را برجسته می کند" width="376" height="576" loading="lazy">

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

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

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

 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() 

نمایشی <a href= از استفاده از نمودارهای منطقه" width="372" height="576" loading="lazy">

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

نتیجه گیری

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

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

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

خبرکاو

ارسال نظر




تبليغات ايهنا تبليغات ايهنا

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