نمودار میله‌ای با نمایش نشانگر کاهش یا افزایش روی آن

گاهی برای طراحی نمودار نیاز می‌باشد که اطلاعات روی نمودار نشان دهنده میزان تغییرات نسبت به دوره قبل و یا مدت مشابه سال‌های قبل باشد, به عنوان مثال فرض کنید داده‌های فروش برای یک دوره شش ماهه را دارید و می‌خواهید بدانید هر ماه نسبت به دوره قبلی(در اینجا ماه قبلی) چقدر فروش افزایش و یا کاهش داشته؟ و مبلغ این تغییرات فروش چقدر بوده؟ اگر نمودار فروش بصورت یک نمودار میله‌ای نمایش داده شود با مقایسه مقدار فروش هر ماه با ماه قبلی این امکان فراهم میشود اما حال فرض کنید می‌خواهید اطلاعات فروش ماهانه در سال جاری را با ماه مشابه سال قبلی مقایسه کنید.، چه باید کرد؟ نخست ببینیم اگر بخواهیم فروش ماه را با ماه قبلی مقایسه کنیم  چه باید کرد؟ برای این منظور که قطعه زیر را وارد نمایید:


load * Inline
[month, sale
01,2000
02,3000
03,1500
04,3500
05,4000
06,3100
];

فایل را ذخیره و سپس لود کنید.

یک چارت میله‌ای ایجاد کنید:

Create Chart⇒General(Chart Type=bar)

Dimention(used Dimention=month)                       

Experssion(Definition=sale; check  Value on Data Point)                       

 

نموداری مانند شکل زیر ایجاد می‌گردد:

اگر بخواهیم اطلاعات را با ماه قبل از آن مقایسه کنیم از دستور Above استفاده می‌کنیم، دستور Above اطلاعات رکورد قبلی را براساس نحوه مرتب سازی که در Sort(Tab Sort) مشخص کرده‌اید را برمی‌گرداند، برای این منظور تغییرات زیر را در چارت ایجاد نمایید.

Experssion(Definition=num(sale-Above(sale),'##.;-##.'))

نمودار بصورت زیر خواهد شد:

همانگونه که مشاهده می‌شود این نمودار دارای دو نکته می‌باشد نخست اینکه نمودار اصلا قابل فهم نیست و دوم اطلاعات نمودار از ماه دوم آغاز شده زیرا برای ماه نخست دستور Above مقداری برنمی‌گرداند. اگر دقت نمایید عدد روی هر میله دقیقا حاصل تفاضل ماه جاری از ماه قبلی می‌باشد. مثلا برای ماه دوم(02) عدد 1000 که حاصل تفاضل عدد ماه دوم که 3000 بوده نسبت به ماه قبلی که 2000 بوده است و چون ماه دوم فروش بیشتری نسبت به قبل داشته فلش  نمایش داده شده.

چه کنیم تا نمودار قابل فهم شود؟ اگر بتوان کاری کرد که عدد روی میله همان تفاضل باشد اما ارتفاع میله نشان‌دهنده میزان فروش در ماه جاری باشد کمی مشکل حل می‌شود و نمودار قابل فهم‌تر می‌گردد. برای این منظور چارت را به صورت زیر تغییر می‌دهیم.

Experssion(Definition=dual(num(sale-Above(sale),'▲ ##.; ▼ -##.'),sale))

در اینجا از دستور dual استفاده شده، این دستور این امکان را میدهد ارتفاع میله بر اساس مقدار sale باشد اما در نمایش عدد مقدار تفاضل با فرمت گفته شده نمایش داده شود. پس از این تغییر نمودار اینگونه میشود:

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

برای این منظور اول یک نکته آموزشی: در Experssion Tab بخشی هست که لیست تمام آیتم‌ها برای نمایش در آن قرار دارد توجه کنید به فلش در عکس زیر:

طبق عکس اگر روی فلش شماره 2 که به علامت + اشاره دارد کلیک کنید چندین آیتم نمایش داده می‌شود مانند Background Color و Text Color و ... با زدن به روی گزینه Background Color اطلاعات زیر را در قسمت Definition واردکنید:

if(sale-Above(sale)<0,lightred(),green())

به شکل زیر توجه کنید:

حال نمودار شما دارای میله‌هایی است که برای افزایش فروش سبز رنگ و برای کاهش فروش قرمز رنگ است.

سوال از شما: چگونه میتوان کاری کرد که اطلاعات ماه نخست(01) هم نمایش داده شود و یا کاری کرد که اعداد روی نمودار فقط برای افزایش فروش نمایش داده شود و یا برای افزایش فروش بیش از 500 عدد نمایش داده شده کمی پررنگ‌تر شود؟ مانند نمودار زیر:


فایلهای مطلب

کپی
لینک اشتراک گذاری

  • 1145
  • 0