نقل قول: ايجاد نمودارهاي پويا در صفحات وب
سلام
در سایت Google code یک کتابخانه با نام GChart وجود دارد که با استفاده از GWT توسعه داده شده است. این کتابخانه بدون استفاده از هیچ تکنولوژی خاصی (مانند فلش) به توسعه دهندگان برنامه های GWT این امکان را می دهد که چارت ها و دیاگرام های مورد نظر خود را رسم کنند.
این کتابخانه با استفاده از جاوااسکریپت چارت ها و نمودارها را رسم می کند.
http://code.google.com/p/gchart/
تعريف تئوري نمودارها(رياضي)
با توجه به اينكه دسته اي از برنامه نويسان علاقه اي به مباحث آماري ندارند(مثل خودم) تصميم گرفتم نوضيح مختصري از نمودارهاي قابل توليد با API گوگل رو بذارم.
- Line Chart
نمودار خطي
اين نوع نموداربراي تاکيد بر روند و تغييرات مقادير در طول زمان بکار ميرود. اين نوع نمودار ابتدايي ترين نوع نمودار ميباشد. نمودار خطي در واقع فقط از يک خط تشکيل شده است که نقطه هاي ايجاد شده بر اساس اطلاعات موجود بر روي محور هاي X , Y را به يکديگر متصل ميکند.
- Bar Chart
نمودار ميله اي
از اين نوع براي مقايسه مقادير در مقطعي از زمان استفاده ميشود.
- Pie charts
نمودار دايره اي
اين نمودار براي نشان دادن نسبت بين اجزاء و يک کل بکار ميرود.
- Venn diagrams
نمودار ون
همه دوستان تو دبيرستان درس جبر رو خوندن و با اين نمودار آشنا هستند، پس نياز به توضيح نداره.
- Scatter plots
نمودار پراكندگي
از اين نمودار براي نمايش دادن دامنه تغييرات و پراكندگي داده ها استفاده مي شود.
- Radar charts
نمودار راداري
نوعي از نمودار خطي است. با اين تفاوت که نمودار مزبور بجاي اينکه نسبت به محور ترسيم شود، نسبت به يک نقطه مرکزي ترسيم ميشود. يعني خط افقي در نمودار خطي ، در نمودار راداري بصورت دايره نشان داده ميشود.
- Maps
نقشه
مي تونيد نقشه كل دنيا رو با رنگهاي مختلف براي هر كشوربه كاربران نمايش بديد
- Google-o-meters
گوگل متر
مي تونيد حداقل و حداكثر يه كاري رو با شاخص نمايش بديد.
- QR codes
با اين امكان شما مي تونيد متون رو به صورت عكس در بياريد و در حقيقت به صورت كد شده به كاربر نمايش بديد.
اين عكس بوسيله خواننده هاي QR code تا موبايل هايي كه اين قابليت رو داشته باشند قابل برگشت به متن است.
لازم به ذكر است كه تمام تصاوير بالا با استفاده از API گوگل نمايش داده شده است.
مي توانيد آنها را در پنجره اي ديگر باز كنيد و پارامترهاي مربوطه را مشاهده كنيد.
در ضمن فعلا همين رو بدونيد كه نوع نمودار با پارامتر cht مشخص ميشه.
اگه استقبال بشه تا آخرش رو براتون ميگم.
موفق باشيد
فرمت هاي داده اي نمودارها
همانطور كه مي دانيد در اين روش نمودار به وسيله آدرس اينترنتي ايجاد و توسط پارامترهاي انتهاي آدرس نيز كنترل مي شود.(Query String)
در آدرس ما با يك سري محدوديت روبرو هستيم
1. هر كاراكتري را نمي توانيم به عنوان پارمتر در آدرس قرار دهيم(كاراكترهاي كنترلي)
2. طول آدرس از لحاظ حجم محدوديت دارد كه بعضي از مرورگرها هر اندازه اي را حمايت نمي كند.(هم اكنون مرورگر IE آدرس با حجم بيش از 2k را ساپورت نمي كند، ولي FireFox و Chrome اينگونه نيستند.)
تمامي اينها منجر به اين مي شود كه يك سري كدينگ هايي را براي تبادل اطلاعات با گوگل داشته باشيم كه حجم كمي را اشغال كند و به راحتي تبديل شود(و به صورت بصري نيز قابل فهم باشد.)
انواع Encoding ها:
- Text encoding:
اعداد اعشاري را از صفر تا 100 حمايت مي كند. - Text encoding with data scaling:
حمايت مي كند هر عدد اعشاري مثبت و منفي را با تركيب يك پارامتر قياسي. - Simple encoding:
اجازه مي دهد به شما تا مشخص كنيد اعداد صحيح رو از 0 تا 61 بوسيله حروف الفباي اعداد انگليسي كوچك و بزرگ و اعداد 0 تا 9(A-Z و a-z و 0-9) - Extended encoding:
اجازه مي دهد به شما تا مشخص كنيد اعدادي به ارزش 0-4095 بوسيله دو كاراكتر از حروف الفبا و اعداد 0-9. كه اين مناسب ترين گزينه براي دامنه بزرگ اعداد و نمايش نمودارهاي بزرگ است.
چگونگي Text encoding with data scaling
با استفاده از اين نوع كدگذاري شما قادر خواهيد بود تا براي خودتان يك محدوده دلخواهي از اعداد را مشخص كنيد. و به اين وسيله شما يك پارامترهايي را به عنوان مينيمم و ماكزيمم مشخص مي كنيد.
توجه كنيد كه نمودار اعداد را در بازه 0 تا 100 به شما نشان مي دهد ولي در حقيقت اين اعدادي كه شما به عنوان ديتا وارد كرده ايد به نوعي در اين بازه قياس شده اند.
پارامترهاي مورد استفاده:
کد HTML:
chd=t:<chart data string>&
chds=<data set 1 minimum value>,<data set 1 maximum value>,...,<data set n minimum value>,<data set n maximum value>
پارامتر chd: براي داده هاي نقطه اي ما استفاده مي شود. دقت كنيد كه حتما عبارت "t:" را روبروي اين پارامتر بنويسيد(نشانگر Text Encoding)
پارامتر chs: براي پارامترهاي قياسي(Scaling) به كار مي رود.
data set اول در اين مجموعه به عنوان مينيمم دامنه اول و dada set دوم نيز به عنوان ماكزيمم دامنه اول به كار مي رود.
دو Data set بعدي براي دامنه مجموعه ديتايي دوم و همينطور الي آخر.(ما هنوز بيش از يك مجموعه ديتايي را نمي دونيم چيه. انشاالله بهش ميرسيم)
يه مثال ببينيد:
http://chart.apis.google.com/chart?c...s=0,300&chxt=y
در اين مثال ما بازه قياسي را از 0 تا 300 قرار داديم. ولي همونطوري كه مي بينيد روي نمودار Y از 0 تا 100 ديده ميشه. ولي اشكالي نداره، چون طبق نسبت تناسب سر جاشون قرار گرفتن.
chd=t: 50 , 150 , 50 , 300 , 100, 0
chds=0,300 >> نتيجه مي گيريم كه بازه عددي ما از 0 تا 300 هست.
عدد او ل50 هست در نتيجه>> 50/300 ميشه 1/6 كه لوله اول هست.
عدد او ل150 هست در نتيجه>> 150/300 ميشه نصف. كه لوله دومه. و همين طور الي آخر.
خوب اينم از كدگذاري با استفاده از مقياس.
نمودار لوله اي(Bar Chart)
نمودار لوله اي(Bar Chart)
يك نمودار خطي مانند همه انواع ديگر با عبارت روبرو مشخص ي شود:
cht=<line chart style>
كه در آن بايد <line chart style> مي تواند يكي از مقادير bhs يا bvs يا bhv يا bvg باشد.
دقت كنيد كه اين موارد بالا همه نمودار لوله اي توليد مي كنند.(با كمي تفاوت)(مثل نمودارهاي قبلي)
به طور كلي اين نوع نمودار براي بازه هاي داده اي گسسته به كار مي روند. مثلا فرض كنيد كه مي خواهيد مقدار بارش باران را در ماههاي مختلف مشاهده كنيد. يا اينكه مي خواهيد مقدار بارش باران در ماههاي دو سال را باهم مقايسه كنيد. يا نيز مي خواهيد به صورت پشته اي مقايسه كنيد.
- cht=bhs
- به نمودار زير دقت كنيد. اگر آن را در يك پنجره مرورگر ديگر باز كنيد مشاهده مي كنيد كه Data set آن از نوع simple text است.
کد HTML:
http://chart.apis.google.com/chart?cht=bhs&chs=200x125&chd=s:ello&chco=4d89f9
http://chart.apis.google.com/chart?c...lo&chco=4d89f9 - در نمودار زير همانطور كه مي بينيد از دو مجموعه ديتايي استفاده شده است. مجموعه اول با خطوط آبي پررنگ و مجموعه دوم با آبي كم رنگ مشخص شده است. توجه كنيد كه مجموعه دوم در حقيقت مقدار افزايش نسبت به مقدار اول را نشان مي دهد.
کد HTML:
http://chart.apis.google.com/chart?cht=bhs&chs=200x125&chd=t:10,50,60,80,40|50,60,100,40,20&chco=4d89f9,c6d9fd&chbh=20
http://chart.apis.google.com/chart?c...c6d9fd&chbh=20
- cht=bvs
اين نوع كاملا مانند مورد قبل است، با اين تفاوت كه خطوط لوله اي آن به صورت عمودي رسم مي شود.
در مثال زير نمونه اي با دو مجموعه ديتايي را مشاهده مي كنيد كه با استفاده از Text encoding with Data scaling مقدار دهي شده است.(قبلا چگونگي اين نوع مقداردهي توضيح داده شده است. پس دقت كنيد كه مجموع دو عدد متناظر در هر مجموعه ديتايي بايد در رنج chds باشد.)
کد HTML:
http://chart.apis.google.com/chart?cht=bvs&chs=200x125&chd=t:10,50,60,80,40|50,60,100,40,20&chco=4d89f9,c6d9fd&chbh=20&chds=0,160
http://chart.apis.google.com/chart?c...=20&chds=0,160
دو مورد بالا در مواردي به كار ميامدند كه هميشه مجموعه ديتايي دوم قسمتي از مجموعه ديتايي اول باشد.(مثلا مجموعه ديتايي اول ميزان تولد نوزادان و مجموعه ديتايي دوم مرگ نوزادان در حين تولد باشد.) حال فرض كنيد كه مي خواهيد مصرف گاز يك خانوار را در دو سال متوالي نمايش دهيد و با توجه به اين نكته كه ممكن است سال دوم مصرف كاهش پيدا كرده باشد. در اين گونه موارد از اين نمودارها استفاده مي شود.
- cht=bhg
با توجه به جملات پاراگراف قبل و نمودار، كارايي نمودار كاملا مشهود است.
کد HTML:
http://chart.apis.google.com/chart?cht=bvs&chs=200x125&chd=t:10,50,60,80,40|10,60,100,40,20&chco=4d89f9,c6d9fd&chbh=20&chds=0,160
http://chart.apis.google.com/chart?c...=20&chds=0,160 - cht=bvg
اين نوع هم مانند بالاست با اين تفاوت كه افقي رسم مي شود.
کد HTML:
http://chart.apis.google.com/chart?cht=bhg&chs=200x125&chd=s:el,or&chco=4d89f9,c6d9fd
http://chart.apis.google.com/chart?c...=4d89f9,c6d9fd
خب. اينم از نمودار لوله اي. فقط دو تا پارامتر رنگ نمودار و نيز عرض و فاصله بين لوله ها موند كه در يك فرصت مناسب براتون ميذارم.
يا حق.
نقل قول: ايجاد نمودارهاي پويا در صفحات وب
اين پست براي ايجاد پست هاي بعدي رزرو شده است.3
نقل قول: ايجاد نمودارهاي پويا در صفحات وب
اين پست براي ايجاد پست هاي بعدي رزرو شده است.4
نقل قول: ايجاد نمودارهاي پويا در صفحات وب
نقل قول: ايجاد نمودارهاي پويا در صفحات وب
توجه: این سایت های زیر با آی پی ایران کار نمی کنند. پس از تغییر آی پی به این آدرس ها بروید:
برای مشاهده انواع نموداری تصویری و دیدن قابلیت ها آن ها و دستکاری آن ها برای یادگیری:
مستندات و معرفی این سرویس در گوگل:
اما این گونه نمودار ها که به نمودار های تصویری (Image Charts) معروف اند کمی قدیمی شده است.
سرویس جدید نمودار کشی گوگل را از اینجا دنبال کنید: