استفاده از نمودارهای پراکندگی(Scatterplot) برای یافتن جزئیات در گزارشها
این مقاله توضیح میدهد که چگونه میتوان با استفاده از نمودارهای پراکندگی (Scatterplot)، گزارشهای Power BI را مؤثرتر ساخت.
در بسیاری از گزارشها، رایج است که جداول یا ماتریسهای بزرگی با حجم زیادی از اطلاعات دیده شوند. کاربران تجاری به این گزارشها مراجعه میکنند تا جزئیاتی را که برای پاسخ به سؤالات، تصمیمگیری و اقدام نیاز دارند، بهدست آورند. با این حال، این جداول پرجزئیات ممکن است ناکارآمد باشند، چراکه کاربران مجبورند آنها را مرتب کنند، در آنها Drill down (نفوذ به سطوح پایینتر داده) انجام دهند، یا آنها را فیلتر کنند تا به دادههای قابل اقدام دست یابند.
به مثال زیر از یک ماتریس برای تحلیل شکافهای رشد سال به سال بر اساس محصول توجه کنید که این شکافها را به تفکیک منطقه بررسی میکند. در این سناریو، هدف از گزارش این است که تیم فروش بتواند تحلیل کند که چرا به هدف تعیینشده برای رشد درآمد نرسیدهایم.

با وجود اینکه این یک مثال ساده است، ماتریس همچنان گیجکننده و سنگین به نظر میرسد. انجام تحلیل برای کاربران دشوار و زمانبر است، مگر اینکه دقیقاً بدانند دنبال چه چیزی هستند. میتوانیم تلاش کنیم با افزودن برخی قالببندیها آن را بهبود دهیم، اما این راهحل مشکلات اصلی ما را برطرف نمیکند:
کاربر تنها میتواند چند ردیف را بهصورت همزمان ببیند. آنها دید محدودی نسبت به کل زمینهی داده دارند.
جزئیات بهخوبی برجسته نمیشوند. یافتن نقاط پرت (Outliers) و الگوها برای کاربر زمانبر و ناکارآمد است، چرا که باید جدول را مرتبسازی کرده، فیلتر کند یا از قابلیت Drilldown استفاده کند.
نمای نمایش دادهها انعطافپذیر نیست. این نما، دادهها را بر اساس «محصول در هر منطقه» نشان میدهد، اما اگر بخواهیم معکوس آن را ببینیم—مثلاً فروش محصولات در یک منطقه خاص—چه؟ این موضوع اغلب منجر به ساخت گزارشهای تکراری و چندصفحهای با تجزیهوتحلیلهای کمی متفاوت از همان اطلاعات میشود.
یکی از راههای حل این مشکلات و بهبود گزارش، استفاده از نمودار پراکندگی (Scatterplot) است. نمودارهای پراکندگی ابزارهای مفیدی هستند که به کاربران کمک میکنند جزئیات قابل اقدام را بهسرعت پیدا کنند و با استفاده از Cross-filtering در Power BI، برای اطلاعات بیشتر عمق دادهها را بررسی کنند. نقاط پرت و گروههای جالب داده به راحتی قابل تشخیص هستند. به عنوان مثال، به دایرههای قرمز در بالای سمت چپ نمودار پراکندگی زیر توجه کنید. کاربر میتواند به راحتی این محصولات را شناسایی کرده و روی آنها تمرکز کند، چرا که این نوع نمودار باعث میشود این جزئیات به وضوح دیده شوند، بدون اینکه کاربر مجبور باشد خودش آنها را در جدول کناری جستجو کند.

خواندن و استفاده از نمودار پراکندگی (Scatterplot)
نمودار پراکندگی نوعی نمودار است که پراکندگی یا توزیع نقاط داده را برای دو معیار (Measure) نمایش میدهد. در این نمودار، هر نقطهی داده نمایندهی یک عضو از یک بُعد (Dimension) است؛ مثلاً نام یک محصول یا مشتری. مقادیر را بر اساس موقعیت نقاط داده در نمودار میخوانیم.
نمودار پراکندگی در سناریوهایی مانند موارد زیر کاربرد دارد:
زمانی که دادههای زیادی دارید و میخواهید توزیع یا گستردگی آنها را مشاهده کنید.
زمانی که میخواهید نقاط پرت (Outliers) یا دادههایی با مقادیر بسیار بالا یا بسیار پایین را شناسایی کنید.
زمانی که میخواهید ببینید آیا برخی نقاط داده به صورت خوشهای یا گروهی در کنار هم قرار گرفتهاند.
زمانی که میخواهید بررسی کنید یک یا چند نقطهی داده نسبت به سایر دادهها در چه موقعیتی قرار دارند.
زمانی که میخواهید رابطهی احتمالی بین دو متغیر را بررسی کنید.
تصویر زیر دو مثال از نمودارهای پراکندگی برای محصولات را نشان میدهد که این سناریوها را به تصویر میکشند.

در مثال اول، بهوضوح میبینیم که دستهبندی کامپیوترها (Computers) یک نقطه پرت (Outlier) محسوب میشود؛ این دسته از سایر انواع محصولات جدا شده و خوشهای تشکیل داده که هم بالاترین فروش سال گذشته (Sales PY) و هم پایینترین رشد سالانه (Sales YoY) را دارد. برای یک کاربر، این موضوع بهوضوح نشان میدهد که باید روی دستهی کامپیوتر تمرکز کند تا بفهمد چرا به اهداف رشد خود نرسیدهایم.
در ادامهی تحلیل، مثال دوم نکات جالب بیشتری را نشان میدهد. در این مثال، ما به درصد حاشیه سود (Margin %) در برابر رشد سالانه فروش (Sales YoY) برای محصولات جداگانه نگاه میکنیم. بهوضوح دیده میشود که محصولات ما در سه بخش با حاشیه سود بالا، متوسط و پایین خوشهبندی شدهاند. علاوه بر این، محصولات در دستهی کامپیوترها عموماً رشد سالانهی فروش پایینتری نسبت به محصولات دیگر دستهها دارند (که با کادرهای قرمز خطچین مشخص شدهاند). با این حال، توجه داشته باشید که این بخش فقط زیرمجموعهای از محصولات دستهی کامپیوتر را نشان میدهد؛ تراکم سایر نقاط، بسیاری از دادههای مربوط به محصولات دیگر در این دسته را پنهان کرده است. این نمودار پراکندگی برای تحلیل اکتشافی (exploratory analysis) جهت کشف یا برجسته کردن تقسیمبندیهای احتمالی مفید است، اما برای رسیدن به نتیجهگیری نهایی، نیاز به تحلیل عمیقتری وجود دارد.
این دو مثال نشان میدهند که چگونه میتوان با استفاده از نمودار پراکندگی، اطلاعات ارزشمند را بهشکلی واضح و کارآمد مشاهده کرد.
انواع نمودارهای پراکندگی
انواع مختلفی از نمودارهای پراکندگی وجود دارد که در سناریوهای گوناگون استفاده میشوند. پنج نوع اول (۱ تا ۵) با نمودار پراکندگی اصلی (core visual) در Power BI قابل ایجاد هستند. اما موارد ۶ تا ۸ نیاز به استفاده از ویژوالهای سفارشی (custom visuals) در گزارشها یا استفاده از Notebookهای Fabric دارند (برای مثال، با استفاده از پکیجهای Python مثل Seaborn برای مصورسازی دادهها).

انواع نمودارهای پراکندگی
۱. Scatterplot (نمودار پراکندگی معمولی): نوع استاندارد نمودار پراکندگی.
۲. Animated scatterplot (نمودار پراکندگی متحرک): نموداری که با استفاده از محور پخش (play axis) تغییرات در طول زمان یا وضعیتهای مختلف را نشان میدهد.
۳. Bubble plot (نمودار حبابی): زمانی که میخواهید سه معیار را نمایش دهید؛ معیار سوم اندازهی نقاط داده (یا حبابها) را تعیین میکند.
۴. Quadrant plot (نمودار چهارربع): زمانی که میخواهید نقاط داده را به چهار بخش یا چهار ربع مجزا دستهبندی کنید.
۵. Volcano plot (نمودار آتشفشانی): زمانی که میخواهید ببینید دادهها بین دو شرایط یا بازه زمانی چگونه تغییر کردهاند.
۶. Connected scatterplot (نمودار پراکندگی متصل): زمانی که میخواهید تغییرات یک یا چند نقطه داده را برای دو معیار به صورت پیوسته نشان دهید.
۷. Joint plot یا Rug plot: زمانی که میخواهید نمودارهایی در حاشیهها (Margins) قرار دهید تا توزیع دادهها روی محورها را نشان دهند. Rug plot معمولاً فشردهتر از joint plot استاندارد است که از هیستوگرام استفاده میکند.
۸. Swarm plot یا Strip plot: زمانی که میخواهید توزیع را روی یک محور (نه دو محور) نشان دهید. با اینکه بهطور دقیق نمودار پراکندگی نیستند، اما ظاهر مشابهی دارند و ارزش ذکر دارند. این نمودارها میتوانند فواصل تصادفی (jitter) اضافه کنند تا توزیع را قابل مشاهدهتر کنند. Swarm plot (یا jitter plot) اطمینان میدهد که نقاط با هم همپوشانی نداشته باشند، در حالی که در strip plot امکان همپوشانی وجود دارد.
همچنین جایگزینهایی برای نمودار پراکندگی وجود دارد، مانند:
نمودارهای چگالی دومتغیره (bivariate KDE plots)
هیستوگرامهای دومتغیره (bivariate histograms)
نمودارهای ششضلعی (hexbin plots)
که وقتی تعداد نقاط داده بسیار بالاست و میخواهید آنها را گروهبندی (bin) کنید، کاربردیتر هستند. البته مثل برخی از مثالهای قبلی، این نمودارها فقط با استفاده از ویژوالهای سفارشی در Power BI قابل پیادهسازی هستند.
محدودیتهای احتمالی نمودار پراکندگی در Power BI
یکی از محدودیتهای نمودارهای پراکندگی در Power BI نمونهبرداری با چگالی بالا (high-density sampling) است که به دلایل عملکردی، تعداد نقاط داده قابل نمایش را محدود میکند. بهطور پیشفرض این عدد ۳۵۰۰ است، اما شما میتوانید آن را تا حداکثر ۱۰,۰۰۰ افزایش دهید.
این یعنی اگر بخواهید توزیع ۱۰۰,۰۰۰ محصول را ببینید، فقط حداکثر ۱۰,۰۰۰ تای آنها نمایش داده میشود، آنهم بر اساس یک الگوریتم انتخاب. حتی ویژوالهای سفارشی هم این محدودیت را کاملاً حذف نمیکنند، چراکه آنها نیز از الگوریتم کاهش داده برای نمایش فقط ردیفهای برتر (top N) استفاده میکنند. با این حال، برای بیشتر ویژوالهای سفارشی این محدودیت تا ۳۰,۰۰۰ نقطه و برای ویژوالهای R تا ۱۵۰,۰۰۰ نقطه قابل افزایش است.
نتیجه: در صورتی که تعداد نقاط داده خیلی زیاد باشد، نمودار پراکندگی ممکن است نتواند همهی آنها را نشان دهد.
بسته به سناریو و نیاز شما، میتوانید از انواع مختلف نمودار پراکندگی استفاده کنید.
در مثال زیر، به شما مرحلهبهمرحله آموزش میدهیم که چگونه یک Volcano plot (شماره ۵ در لیست بالا) برای تحلیل رشد سالانه بسازید. در مقالات آینده، انواع دیگر نمودارهای پراکندگی و ویژوالهای مرتبط نیز معرفی خواهند شد.
ساخت نمودار آتشفشانی (Volcano Plot)
برمیگردیم به سناریوی اصلیمان؛ کاربران میخواهند رشد سالانهی فروش بر اساس محصول را بررسی کنند تا بفهمند چرا در سال گذشته به اهداف خود نرسیدهاند. در این سناریو، کاربران به دنبال شناسایی محصولاتی هستند که نیاز به تحلیل دقیقتر و اقدامات بعدی دارند. این یک سناریوی مناسب برای استفاده از نمودار پراکندگی بر اساس محصول است، بهویژه نمودار آتشفشانی برای مقایسهی سالبهسال.
نکته: نمودار آتشفشانی معمولاً در تحلیلهای آماری دادههای زیستپزشکی (مانند تجزیهوتحلیلهای -omics) استفاده میشود، اما همانطور که میبینیم، میتوان آن را در سناریوهای دیگر نیز بهکار برد.
برای ساخت این نمودار، ابتدا باید معیارها (measures) را به محورهای نمودار اضافه کنیم. بهطور مشخص، مقدار هدف (Target) را به محور Y و مقدار مقایسه (Comparison) را به محور X اضافه میکنیم. در این مثال، فروش سال قبل (Sales PY) در محور Y و رشد سالانهی فروش (Sales YoY) در محور X قرار دارد. سپس، سلسلهمراتب محصول (Product Hierarchy) را به بخش “Values” ویژوال اضافه میکنیم. با افزودن کل سلسلهمراتب (نه فقط نام محصول)، امکان Drilldown برای کاربر فراهم میشود.
نتیجه: نموداری خواهیم داشت که در آن نقاطی که به سمت چپتر قرار دارند، بیشتر از هدف عقب هستند؛ و نقاطی که به سمت راستترند، بالاتر از هدف هستند. هرچه نقطهای بالاتر باشد، هدف آن بیشتر است.

گام بعدی: افزودن قالببندی (Formatting) برای کاربردیتر کردن نمودار
برای اینکه نمودار آتشفشانیمان برای کاربران قابل فهمتر و مفیدتر باشد، باید چند تنظیم قالببندی انجام دهیم:
افزودن یک خط برای نشان دادن عدد صفر:
یک خط ثابت روی محور X (X-axis constant line) ایجاد کنید و مقدار آن را روی صفر قرار دهید. این خط بهوضوح نقطهای را که رشد سالانه فروش (Sales YoY) از منفی به مثبت (و بالعکس) میرود، نمایش میدهد.افزودن برچسب با استفاده از خطوط ثابت شفاف برای کمینه و بیشینه:
دو خط ثابت دیگر روی محور X اضافه کنید، یکی با مقدار مینیمم و دیگری ماکزیمم؛ هر دو را شفاف (Transparent) کنید. سپس به ترتیب آنها را با عنوانهای:“Below target” برای مقدار پایینتر از هدف
“Above target” برای مقدار بالاتر از هدف
برچسبگذاری کنید تا تفسیر ویژوال آسانتر شود.
افزودن عنوان و زیرعنوان توصیفی (Descriptive Titles and Subtitles):
عنوان نمودار و زیرعنوانی توضیحی اضافه کنید که هدف از نمودار را برای کاربر توضیح دهد، مثلاً:Title: Year-over-Year Sales Analysis by Product
Subtitle: Identifying product performance relative to last year’s targetمرتبسازی فونتها و خطوط (Clean up):
از فونتهای خوانا و تمیز استفاده کنید و خطوط اضافه یا شلوغ را حذف یا کمرنگ کنید تا نمودار حرفهایتر و سادهتر شود.استفاده از اندازه (Size) برای تاکید بر نقاط مهم:
با اضافه کردن مقدار فروش (Sales) به بخش “Size”، محصولات با فروش بیشتر، اندازهی بزرگتری خواهند داشت و به صورت بصری توجه بیشتری جلب میکنند.استفاده از قالببندی شرطی (Conditional Formatting) برای تاکید بر نکات مهم:
برای مثال میتوانید:بر اساس Sales YoY نقاط را رنگآمیزی کنید تا نقاط با عملکرد خیلی مثبت یا منفی برجسته شوند.
یا اینکه بر اساس دستهبندی محصول (Product Category) رنگبندی کنید تا گروهبندی محصولات را بهتر ببینید.
(اختیاری) فعالسازی زوماسلایدر (Zoom Sliders):
اگر دادهها متراکم و نزدیک به هم هستند، با فعال کردن زوماسلایدرها کاربران میتوانند روی نواحی خاصی زوم کنند و دادهها را دقیقتر بررسی کنند.
با این تنظیمات قالببندی، نمودار آتشفشانی شما آماده است.
در تصویر پایینی (که گفته شده در مقاله قرار داره) دو نسخه مختلف از این نمودار نمایش داده شدهاند، بسته به اینکه شما نقاط داده را بر اساس Sales YoY رنگآمیزی کرده باشید یا بر اساس Product Category.

در حالی که نمودار پراکندگی (scatterplot) به خودی خود ارزشمند است، ما میتوانیم از آن به طرق مختلف ارزش بیشتری استخراج کنیم. بخشهای زیر سه روش پیشرفتهتر را برای بهبود استفاده از نمودارهای پراکندگی در گزارشها توضیح میدهند.
مثال 1: فیلترگذاری متقابل روی جدول جزئیات
یکی از قدرتمندترین ویژگیهای یک گزارش در Power BI، توانایی فیلترگذاری متقابل (crossfiltering) تصاویر با تعاملات است. زمانی که شما روی یک نقطه داده در یک تصویر کلیک میکنید، سایر تصاویر فیلتر یا هایلایت میشوند تا اطلاعات بیشتری برای آن نقطه داده به شما نشان دهند. این ویژگی با نمودارهای پراکندگی بسیار قدرتمند است.
وقتی کاربران یک نمودار پراکندگی را مشاهده میکنند، معمولاً به دنبال جزئیات بیشتری برای نقاط داده جالب هستند. شما میتوانید این جزئیات را با استفاده از تکنیکهایی مانند تولتیپها (tooltips) و فیلترگذاری متقابل ارائه دهید. به عنوان مثال، میتوانید یک جدول جزئیات را کنار یا پایین نمودار پراکندگی خود قرار دهید تا اطلاعات تکمیلی را فراهم کند. بدین ترتیب، کاربران میتوانند از نمودار پراکندگی برای هدایت جدول استفاده کنند و فقط جزئیات مربوط به نقاط داده مرتبط را مشاهده کنند. اگرچه میتوانید چندین نقطه را با استفاده از CTRL + کلیک چپ انتخاب کنید، این قابلیت با انتخاب با دست (lasso selection) بهتر خواهد بود، هرچند متأسفانه این ویژگی در Power BI هنوز در دسترس نیست.

برای گزارشهای کاوشیتر، حتی میتوانید استفاده از دو نمودار پراکندگی را در نظر بگیرید که یکدیگر را فیلتر میکنند. این روش بهویژه زمانی مفید است که بخواهید الگوهایی را بین دو ویژگی مرتبط نزدیک مانند منطقه و محصول بررسی کنید. در مثال زیر نشان داده میشود که چگونه میتوان با استفاده از فیلترگذاری متقابل، از محصول به ایالت و بالعکس حرکت کرد.

در مثال بالایی، ما توزیع فروش سال به سال (YoY) را بر اساس ایالت برای “WWI Desktop PC” مشاهده میکنیم که به راحتی مناطقی که بیشتر عقب هستند را نشان میدهد. برعکس، توزیع فروش YoY بر اساس نام محصول برای ایالت “Highland” نشان میدهد که کدام محصولات بیشتر عقب ماندهاند.
فیلترگذاری متقابل یک ویژگی قدرتمند است که میتواند واقعاً نحوه استفاده از نمودارهای پراکندگی در گزارشهای شما را بهبود بخشد.
مثال 2: فرمتبندی پارتو
روش دیگری برای بهبود نمودارهای پراکندگی این است که نقاطی را که نیاز به توجه خاص دارند بهطور بصری برچسبگذاری یا شناسایی کنید. یکی از مثالها، انجام تحلیل پارتو است. در تحلیل پارتو، شما دستههایی را شناسایی میکنید که میتوانند افزایش قابل توجهی در یک متغیر را توضیح دهند. به عنوان مثال، میتوانیم یک تحلیل پارتو روی محصولاتی که فروش YoY منفی دارند انجام دهیم. در این تحلیل، ما به فروش منفی YoY به عنوان فاصله اشاره میکنیم. بهطور خاص، این فاصله بین فروش سال جاری (مقدار فروش) و فروش سال گذشته (فروش PY) است.
برای انجام این کار، ابتدا یک میزان (measure) برای شناسایی فاصله در فروش YoY ایجاد میکنیم:

پس از آن، یک میزان (measure) دوم ایجاد میکنیم تا درصد تجمعی فاصله را بر اساس نام محصول محاسبه کنیم. این به ما این امکان را میدهد که محصولاتی که بیشترین سهم را در این فاصله از فروش YoY دارند شناسایی کنیم:

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

در این مثال، محصولات قرمز بیشترین تأثیر را دارند، بنابراین بهطور بصری از سایر نقاط متمایز میشوند تا توجه کاربران را جلب کنند. این تنها یک مثال است. شما همچنین میتوانید از روشهای آماری پیچیدهتر برای برچسبگذاری نقاط مهم استفاده کنید، مانند خوشهبندی با استفاده از تکنیکهای کاهش ابعاد (مانند PCA یا t-SNE).
فرمتبندی میتواند کمک کند تا کاربران راحتتر نقاط داده مهم را پیدا کنند و زمان کمتری را صرف نگاه کردن به نمودار کنند.
مثال 3: پارامترهای فیلد
برای بهبود بیشتر نمودارهای پراکندگی، میتوانید از پارامترهای فیلد استفاده کنید. پارامترهای فیلد به شما این امکان را میدهند که بهطور دینامیک ابعاد یا مقادیر را انتخاب کنید و تصاویر انعطافپذیرتری ایجاد کنید. به عنوان مثال، میتوانیم یک پارامتر فیلد برای کاربران ایجاد کنیم تا انتخاب کنند که چگونه میخواهند نمودار پراکندگی را مشاهده کنند و همچنین مقادیر مورد نظر را در محورهای X و Y انتخاب کنند. نمودار پراکندگی زیر نمونهای از نحوه نمایش این موضوع است.

برای کاربران پیشرفته گزارشها، این میتواند روش موثری برای کاوش دادهها از دیدگاههای مختلف در یک صفحه گزارش باشد. با این حال، باید توجه داشته باشید که تنها ترکیبهایی را شامل کنید که منطقی باشند تا کاربران سردرگم نشوند. علاوه بر این، پارامترهای فیلد اشیاء گزارش هستند و مهم است که مراقب باشید بیش از حد آنها را به مدلهای semantic خود اضافه نکنید، زیرا ممکن است باعث شلوغی و سردرگمی برای هم توسعهدهندگان و هم مصرفکنندگان مدلها شود.
در گزارشها، مهم است که کاربران بتوانند از یک نمای کلی به جزئیات درخواستی منتقل شوند. نمودارهای پراکندگی یکی از روشهای ممکن برای کمک به انجام این کار هستند. زمانی که بهطور مؤثر استفاده شوند، نمودارهای پراکندگی میتوانند به کاربران کمک کنند تا نقاط دادهای قابل اقدام یا جالب را شناسایی کنند، بهویژه زمانی که همراه با تکنیکهای پیشرفته دیگر در گزارشهای تعاملی مانند فیلترگذاری متقابل (crossfiltering)، فرمتبندی و پارامترهای فیلد استفاده شوند.
دیدگاهتان را بنویسید