داشبورد تحلیل نفرساعت با Python و Dash
داشبورد تعاملی که ساعتهای ثبتشدهی ماهانهی یک شرکت مهندسی را از فایلهای اکسل میخواند و سهم هر ماه، بخش و پروژه را در نمودارهای متصل به هم نشان میدهد.
معرفی
این پروژه یک داشبورد وب برای تحلیل نفرساعت است که در سال ۲۰۱۹ ساختم. دادهاش از فایلهای اکسل ماهانهی ثبت ساعت کار (تایمشیت) یک شرکت مهندسی میآید و نشان میدهد ساعتهای هر ماه روی کدام پروژه و کدام بخش سازمانی صرف شده است. قبلا این گزارشها را باید از روی جدولهای بزرگ اکسل درمیآوردند؛ داشبورد همان داده را در چند نمودار تعاملی در یک صفحه جمع میکند.
دادهی شرکت محرمانه است، پس تصاویر و نمونهی زندهی این صفحه با دادهی ساختگی ساخته شدهاند و فقط طرز کار داشبورد را نشان میدهند.
نمونهی زنده
در نمونهی زیر روی یک ماه، یک بخش یا یک پروژه کلیک کنید و ببینید بقیهی نمودارها چطور همزمان عوض میشوند.
نمودارها
نمودار کلی پروژهها: یک نمودار دایرهای دو لایه (Sunburst). لایهی داخلی نوع قرارداد (مثل EPC و EPS) و لایهی بیرونی خود پروژهها را نشان میدهد.
نوع ساعتها: سهم ساعت پایه، اضافهکار، ماموریت و دورکاری از کل.
ساعات فعالیت ماهانه: نمودار میلهای مجموع نفرساعت در هر ماه.
درصد فعالیت بخشها: سهم هر بخش سازمانی از کل فعالیت.
درصد فعالیت پروژهها: سهم هر پروژه، با یک کلید برای نمایش همه یا فقط مواردی که بیش از ۱٪ سهم دارند.
تعامل
نمودارها به هم وصلاند. با کلیک روی یک ماه، نمودار نوع ساعت و دو نمودار درصد بخش و پروژه فقط برای همان ماه حساب میشوند. با کلیک روی یک بخش یا یک پروژه، نمودار ماهانه و بقیه فقط برای همان انتخاب نشان داده میشوند. همهچیز بدون بارگذاری دوبارهی صفحه عوض میشود و یک دکمه نمودارها را به حالت همهی دادهها برمیگرداند. در نمونهی زندهی این صفحه، انتخابها را میشود با هم ترکیب هم کرد.
پردازش داده
برنامه فایلهای اکسل هر ماه را میخواند و یکی میکند. چند کار مهم در آن انجام میشود:
ساعتها در فایل به شکل «ساعت.دقیقه» ثبت شدهاند؛ آنها را به ساعت اعشاری درست تبدیل میکند.
برای هر ماه، بخش و پروژه مجموع ساعت و سهم درصدی را حساب میکند.
پروژهها را بر اساس کد مرکز هزینه در گروههای قرارداد دستهبندی میکند تا نمودار کلی ساخته شود.
ظاهر
رابط تیره است، عنوانها فارسی با فونت وزیر هستند و رنگها برای هر بخش ثابتاند. هر ستون هم درصد و هم عدد را نشان میدهد.
مشخصات
زبان: Python
داشبورد: Plotly Dash، با نمودارهای Plotly
داده: Pandas، ورودی از فایلهای Excel ماهانه
دادهی یک دورهی ۹ ماهه (فروردین تا آذر)
نمودارهای متصل به هم با بهروزرسانی لحظهای
نتیجه
یک ابزار تحلیل که ساعتهای ثبتشدهی یک سازمان را به تصویری تعاملی از سهم هر پروژه، هر بخش و هر ماه تبدیل میکند.
از من حمایت کنید
اگر این نوشتهها به کارتان آمد، با یک حمایت کوچک به ادامهی آنها کمک کنید.
گالری
دربارهی این پروژه سوالی دارید؟
اگر دربارهی این پروژه سوالی دارید یا پروژهای مشابه در دست دارید، خوشحال میشوم با من در ارتباط باشید.