این سند نحوه ارسال داده های نمودار خود را به Google Chart API توضیح می دهد.
فهرست مطالب
بررسی اجمالی
داده های تقریباً همه نمودارها با استفاده از پارامتر chd
ارسال می شوند. داده ها باید در یکی از فرمت های زیر ارسال شوند:
- قالب متن اصلی اساساً اعداد ممیز شناور ساده از 0 تا 100، شامل می باشد. خواندن و نوشتن این قالب با دست آسان است.
- قالب متن با مقیاس خودکار نمودار را متناسب با داده های شما مقیاس می کند.
- قالب متن با مقیاس بندی سفارشی مشابه قالب متن اصلی است، اما به شما امکان می دهد با استفاده از پارامتر URL دوم یک محدوده سفارشی را مشخص کنید.
- فرمت رمزگذاری ساده به شما امکان می دهد مقادیر صحیح از 0 تا 61 را مشخص کنید، که توسط یک کاراکتر الفبایی رمزگذاری شده است. این رمزگذاری منجر به کوتاهترین رشته داده از هر یک از فرمتهای داده میشود (اگر مقداری بیشتر از 9 باشد).
- فرمت رمزگذاری توسعه یافته به شما امکان می دهد مقادیر صحیح از 0 تا 4095 را مشخص کنید که توسط دو کاراکتر الفبایی کدگذاری شده است. رمزگذاری توسعه یافته برای نمودارهایی با داده های زیاد و محدوده داده های زیاد مناسب است.
مقادیر داده ها برای تناسب با فرمت استفاده شده مقیاس بندی می شوند. برای توضیح نحوه دستکاری داده ها برای مطابقت با نمودار، به مقیاس داده و مقیاس محوری مراجعه کنید.
ما یک قطعه جاوا اسکریپت برای رمزگذاری داده ها به فرمت های رمزگذاری ساده یا کدگذاری توسعه یافته ارائه می دهیم. از طرف دیگر، چندین عضو گروه Google Chart کتابخانههای دیگری را برای کمک به قالببندی مشارکت دادهاند: بایگانیها را جستجو کنید تا آنها را پیدا کنید.
قالب متن اصلی
دادههای قالببندی شده متنی پایه به شما امکان میدهد مقادیر ممیز شناور را از 0 تا 100، شامل اعداد مشخص کنید. مقادیر زیر صفر به عنوان مفقود علامت گذاری می شوند. مقادیر بالای 100 به 100 کوتاه می شوند. مزیت قالب متن اصلی این است که مقادیر در URL به راحتی قابل خواندن و درک هستند و برچسب های محور پیش فرض مقادیر داده ها را به دقت نشان می دهند. با این حال، قالببندی متن (چه ساده یا با پارامترهای سفارشی) منجر به طولانیترین رشته داده در بین تمام فرمتها میشود.
اگر دادههای شما شامل مقادیری خارج از محدوده مشخصشده برای قالببندی متن هستند، میتوانید دادههای خود را با تبدیل آن به درصدهایی از بزرگترین مقدار در دادههای خود، مقیاس کنید. از طرف دیگر، میتوانید از قالببندی متن با مقیاسبندی سفارشی برای مدیریت مقیاسبندی برای خود استفاده کنید.
نحو :
chd=t:val,val,val|val,val,val...
- < داده >
- هر سری یک یا چند مقدار جدا شده با کاما است. چندین سری را با استفاده از یک کاراکتر لوله (
|
) جدا کنید. مقادیر شامل اعداد ممیز شناور از 0 تا 100 هستند. مقادیر کمتر از صفر، یا کاراکتر زیر خط ( _ ) مقادیر تهی در نظر گرفته می شوند. مقادیر بالای 100 به 100 کوتاه می شوند.
مثال:
جدولی با پنج مقدار خط زیر یک مقدار تهی در نظر گرفته می شود، مقدار -30 به زیر مقدار حداقل می رسد، بنابراین حذف می شود و مقدار 200 به 100 کوتاه می شود. | chd=t:_,30,-30,50,80,200 |
فرمت متن با مقیاس خودکار
میتوانید برخی از نمودارها را به گونهای پیکربندی کنید که بهطور خودکار متناسب با دادههایشان باشند. نمودار به گونه ای مقیاس می شود که بزرگترین مقدار در بالای نمودار و کوچکترین (یا صفر، اگر همه مقادیر بزرگتر از صفر باشند) در پایین باشد.
هر مقدار نشانگر نشان داده شده در نمودار، مقادیر واقعی خود را نشان می دهد، نه مقادیر مقیاس شده خود را.
این ویژگی فقط با مقادیر فرمت شده متن کار می کند و با همه انواع نمودار کار نمی کند. نوع نمودار خود را آزمایش کنید تا ببینید آیا پشتیبانی می شود یا خیر.
نحو
cht=t:val,val,val... chds=a
مثال ها:
توجه داشته باشید که برای نمودارهای دایره ای نباید از مقادیر < 0 استفاده کنید. | chd=t:-5,30,-30,50,80,200 |
قالب متن با مقیاس بندی سفارشی
قالب متن با مقیاس بندی سفارشی به شما امکان می دهد اعداد ممیز شناور مثبت یا منفی دلخواه را در ترکیب با یک پارامتر مقیاس بندی که به شما امکان می دهد یک محدوده سفارشی را برای نمودار خود تعیین کنید. این نمودار زمانی مفید است که نمیخواهید نگران محدود کردن دادههای خود به یک محدوده خاص باشید، یا نمیخواهید دادهها را به صورت دستی مقیاسبندی کنید تا به خوبی در یک نمودار قرار بگیرند. این فرمت در صورت لزوم، خط صفر را برای شما تنظیم می کند. فرمت داده ها مانند قالب متن اصلی است.
برای مقیاس بندی خودکار، chds=a
مشخص کنید.
قالب بندی متن (چه ساده یا با پارامترهای سفارشی) منجر به طولانی ترین رشته داده در بین تمام فرمت ها می شود.
نحو:
قالب بندی متن با مقیاس بندی سفارشی به دو پارامتر نیاز دارد:
chd=t:val,val,val|val,val,val chds=<series_1_min>,<series_1_max>,...,<series_n_min>,<series_n_max>
- chd=t:< داده >
- همانند قالب داده ساده: یک یا چند مقدار جدا شده با کاما در هر سری، چندین سری که با یک کاراکتر لوله (
|
) از هم جدا شده اند. محدوده مقادیر مجاز در هر سری با پارامترchds
مشخص می شود. - chds
- مجموعه ای از یک یا چند مقدار حداقل و حداکثر مجاز برای هر سری داده که با کاما از هم جدا شده اند. شما باید حداکثر و حداقل را ارائه دهید. اگر جفتهای کمتری نسبت به سریهای داده ارائه کنید، آخرین جفت برای تمام سریهای داده باقیمانده اعمال میشود. توجه داشته باشید که این محدوده محور را تغییر نمی دهد. برای تغییر محدوده محور، باید پارامتر
chxr
را تنظیم کنید. مقادیر معتبر از (+/-)9.999e(+/-)199 متغیر است. می توانید مقادیر را در نماد استاندارد یا E مشخص کنید.- < series_1_min >
- حداقل مقدار مجاز در سری اول. مقادیر پایین تر به عنوان مفقود علامت گذاری می شوند.
- < series_1_max >
- حداکثر مقدار مجاز در سری اول. مقادیر بالاتر به این مقدار کوتاه می شوند.
مثال:
نمودار میله ای با مقیاس حداقل/حداکثر 80-140-. مقادیر 30، 60-، 50، 140 و 80 در مقیاس قرار می گیرند، بنابراین کوتاه نمی شوند. توجه داشته باشید که خط صفر برای شما تنظیم شده است، 80/(140 + 80) = 0.36 از مسیر تا محور y. همچنین توجه داشته باشید که محدوده پیشفرض محور y با وجود پارامتر | |
فرمت رمزگذاری ساده
فرمت رمزگذاری ساده به شما امکان می دهد مقادیر صحیح از 0 تا 61 را مشخص کنید، که توسط یک کاراکتر الفبایی رمزگذاری شده است. این منجر به کوتاهترین URL رشته داده در بین تمام فرمتهای داده میشود. با این حال، اگر نمودار خطی یا میلهای دارید که بیش از 100 پیکسل در امتداد محور داده است، ممکن است بخواهید از قالب دیگری استفاده کنید. این به این دلیل است که تنها با پشتیبانی از 62 مقدار داده، ریزدانگی داده ها بسیار بزرگتر از جزئیات نمایشگر است و مقادیر کمی کاهش می یابند (نه زیاد، اما در نمودارهای بزرگتر قابل مشاهده هستند).
توجه داشته باشید که اگر از پارامتر chds
با رمزگذاری ساده استفاده کنید، اندازه عنصر داده در نمودار تحت تأثیر قرار نخواهد گرفت، اما هر مقدار نشانگر نقطه داده تحت تأثیر قرار خواهد گرفت.
نحو :
chd=s: <series_1> ,..., <series_n>
- <series_1 >
- رشته ای که در آن هر کاراکتر یک نقطه داده واحد است و سری ها با کاما مشخص می شوند. مقادیر فردی در یک سری محدود نمی شوند. در اینجا کاراکترهای داده پشتیبانی شده و مقادیر مربوط به آنها آمده است:
-
A—Z
، که در آنA
= 0،B
= 1، و به همین ترتیب، بهZ
= 25 -
a—z
، که در آنa
= 26،b
= 27، و به همین ترتیب، تاz
= 51 -
0(zero)—9
، که در آن0
= 52 و9
= 61 - کاراکتر زیر خط (
_
) یک مقدار گم شده را نشان می دهد
میتوانید از ابزار زیر برای رمزگذاری یک مقدار یا کد جاوا اسکریپت برای مقیاسبندی و رمزگذاری کل رشته URL استفاده کنید.
مثال:
معادل رشته کدگذاری شده با متن chd=t:1,19,27,53,61,-1|12,39,57,45,51,27 | chd=s:BTb19_,Mn5tzb |
فرمت رمزگذاری توسعه یافته
فرمت رمزگذاری توسعه یافته به شما امکان می دهد مقادیر صحیح از 0 تا 4095 را مشخص کنید که توسط دو کاراکتر الفبایی کدگذاری شده است. از یک نحو کمی متفاوت از رمزگذاری ساده استفاده می کند.
توجه داشته باشید که اگر از پارامتر chds
با رمزگذاری ساده استفاده کنید، اندازه عنصر داده در نمودار تحت تأثیر قرار نخواهد گرفت، اما هر مقدار نشانگر نقطه داده تحت تأثیر قرار خواهد گرفت.
نحو:
chd=e: <series_1> ,..., <series_n>
- <series_1>
- رشته ای که در آن هر دو کاراکتر یک نقطه داده واحد هستند و سری ها با کاما مشخص می شوند. مقادیر فردی در یک سری محدود نمی شوند. در اینجا کاراکترهای رمزگذاری پشتیبانی شده وجود دارد:
-
A—Z
-
a—z
-
0—9
- دوره (
.
) - خط تیره (
-
) - مقادیر از دست رفته با زیرخط دوتایی (
__
) نشان داده می شوند.
در اینجا توضیح مختصری از مقادیر رمزگذاری شده است:
-
AA
= 0،AB
= 1، و به همین ترتیب تاAZ
= 25 -
Aa
= 26،Ab
= 27، و به همین ترتیب تاAz
= 51 -
A0
= 52،A1
= 53، و به همین ترتیب تاA9
= 61 -
A-
= 62،A.
= 63 -
BA
= 64،BB
= 65، و به همین ترتیب تاBZ
= 89 -
Ba
= 90،Bb
= 91، و به همین ترتیب تاBz
= 115 -
B0
= 116،B1
= 117، و به همین ترتیب تاB9
= 125 -
B-
= 126،B.
= 127 -
9A
= 3904،9B
= 3905، و به همین ترتیب تا9Z
= 3929 -
9a
= 3930،9b
= 3931، و به همین ترتیب تا9z
= 3955 -
90
= 3956،91
= 3957، و به همین ترتیب تا99
= 3965 -
9-
= 3966،9.
= 3967 -
-A
= 3968،-B
= 3969، و به همین ترتیب تا-Z
= 3993 -
-a
= 3994،-b
= 3995، و به همین ترتیب تا-z
= 4019 -
-0
= 4020،-1
= 4021، و به همین ترتیب تا-9
= 4029 -
--
= 4030،-.
= 4031 -
.A
= 4032،.B
= 4033، و به همین ترتیب تا.Z
= 4057 -
.a
= 4058،.b
= 4059، و به همین ترتیب تا.z
= 4083 -
.0
= 4084،.1
= 4085، و به همین ترتیب به.9
= 4093 -
.-
= 4094،..
= 4095
میتوانید از ابزار زیر برای رمزگذاری یک مقدار یا کد جاوا اسکریپت برای مقیاسبندی و رمزگذاری کل رشته URL استفاده کنید.
مثال:
معادل رشته کدگذاری شده متنی chd=t:90,1000,2700,3500|3968,-1,1100,250 | chd=e:BaPoqM2s,-A__RMD6 |
مقیاس بندی داده ها و مقیاس بندی محوری
داده ها برای مطابقت با نمودار شما، یا به طور صریح (هنگام استفاده از قالب متن با مقیاس بندی سفارشی) یا به طور ضمنی (همه انواع دیگر) مقیاس بندی می شوند. این بدان معناست که هر نمودار برای تناسب با محدوده موجود قالب، نه محدوده واقعی دادههایی که ارائه میکنید، مقیاسبندی میشود.
ممکن است بخواهید داده های خود را به گونه ای مقیاس بندی کنید که طیف کاملی از مقادیر مجاز توسط قالب شما را در بر گیرد تا تفاوت ها آشکارتر شود. میتوانید دادههای خود را با مقیاسبندی دادههایتان به گونهای که در قالبی که استفاده میکنید مطابقت داشته باشند، یا با مشخص کردن صریح محدوده داده (یعنی از قالب متن با مقیاسبندی سفارشی استفاده کنید) مقیاس کنید.
توجه داشته باشید که مقادیر برچسب محور در یک مقیاس کاملا مستقل محاسبه می شوند و ربطی به مقادیر داده ها ندارند، اما از محدوده پیش فرض 0-100 استفاده کنید. با این حال، شما می توانید آن محدوده را تغییر دهید.
این بخش هر دوی این مسائل را شرح می دهد.
داده ها برای تناسب با محدوده قالب [ همه نمودارها به جز Pie و Venn ] مقیاس بندی شده اند.
فرمت های مختلف از محدوده های متفاوتی پشتیبانی می کنند. داده های شما در محدوده قالب شما مقیاس بندی می شوند، به طوری که حداکثر مقدار پشتیبانی شده توسط قالب شما در بالای آن محور و حداقل مقدار برای قالب شما در پایین نمایش داده می شود. مثال های زیر همان مقدار (100) را با استفاده از قالب متن اصلی (محدوده 0-100)، متن با مقیاس بندی سفارشی (محدوده سفارشی 0-200)، و فرمت رمزگذاری توسعه یافته (محدوده 0-4095) نشان می دهند.
قالب متن اصلی | قالب متن با مقیاس بندی سفارشی | فرمت رمزگذاری توسعه یافته |
---|---|---|
مقدار: 100 ( محدوده قالب: 0-100 100 به صورت 100/100 بالاتر از مقیاس ارائه می شود. | مقدار 100 ( محدوده قالب: 0-200 100 در مقیاس 100/200 ارائه می شود. | مقدار: 100 ( محدوده قالب: 0-4095 100 به صورت 100/4095 در مقیاس ارائه می شود. |
یک راه آسان برای مقیاسبندی دادههای خود برای مطابقت با نمودار شما، استفاده از قالب متن با مقیاسبندی است. یک روش مهم تر این است که داده های خود را به صورت دستی مقیاس کنید تا در محدوده پشتیبانی شده توسط قالب شما قرار بگیرند.
نمودارهای پای و ون : در نمودارهای پای و ون، همه مقادیر نسبت به یکدیگر هستند، نه به مقیاس کل نمودار.
chd=e:BkDIEs | chd=t:100,200,300 |
محدوده برچسب محور به طور مستقل محاسبه می شود [ نوار، خط، رادار، پراکندگی، و کندل استیک ]
با استفاده از پارامتر chxt
می توانید مقادیر محور را نمایش دهید. با این حال، مهم است که توجه داشته باشید که برچسبهای محور برای انعکاس دادههای نمودار محاسبه نمیشوند، بلکه یا بهطور مستقل توسط API محاسبه میشوند یا به صراحت توسط شما مشخص شدهاند .
محدوده محور پیشفرض 0 تا 100 است، بدون توجه به مقادیر داده یا مقیاس دادهها . بنابراین، برای مثال، اگر محور y را با استفاده از برچسبهای محور پیشفرض بر روی نموداری که از رمزگذاری گسترده استفاده میکند (محدوده 0 تا 4095) نمایش دهید، برچسبهای محور y همچنان 0 تا 100 میخوانند، مگر اینکه به صراحت آن را تغییر دهید، همانطور که در زیر توضیح داده شده است. . در اینجا مثالی است که برچسبهای محور y پیشفرض را در نمودار میلهای رمزگذاری توسعهیافته با مقدار داده 100 نشان میدهد:
chd=e:Bk
(معادل chd=t:100
)
با این حال، می توانید محدوده محور را با استفاده از پارامتر chxr
مشخص کنید. اگر میخواهید مقادیر محور مقادیر واقعی دادهها را منعکس کنند، باید حداقل و حداکثر مقادیر محور را که با محدوده قالب شما مطابقت دارند، تعیین کنید. توجه داشته باشید که قالب متن اصلی در حال حاضر دارای مقیاس 0-100 است، بنابراین اگر از قالب بندی متن اصلی (بدون مقیاس بندی سفارشی) استفاده می کنید، مقادیر محور به طور پیش فرض با مقادیر داده مطابقت دارند. اجازه دهید این موضوع را با چند مثال توضیح دهیم. در اینجا سه نمودار با داده های یکسان (15،26،51،61)، اما فرمت های مختلف و مقیاس های محوری متفاوت وجود دارد:
رمزگذاری ساده، بدون مقیاس بندی محوری | رمزگذاری ساده، محور مقیاس شده | متن اصلی، بدون مقیاس بندی محوری |
---|---|---|
محدوده مقدار رمزگذاری ساده: 0-61 محدوده محور پیش فرض (0-100) محدوده رمزگذاری کوچکتر از محدوده محور برچسب است، بنابراین نوارها با مقدار واقعی روی برچسب محور مطابقت ندارند. با این حال، میله ها به درستی با یکدیگر تناسب دارند. | محدوده مقدار رمزگذاری ساده: 0-61 محدوده محور به صراحت روی 0-61 تنظیم شده است محدوده رمزگذاری و محدوده محور برابر هستند، بنابراین میله ها با مقدار صحیح آنها در محور مطابقت دارند. | محدوده ارزش قالب متن اصلی: 0-100 محدوده محور پیش فرض (0-100) محدوده رمزگذاری و محدوده محور دوباره یکسان هستند، بنابراین مقادیر داده های دقیق به طور پیش فرض روی محور نشان داده می شوند. از آنجایی که محدوده قالب متن بزرگتر از محدوده قالب کدگذاری ساده است (100 واحد در مقابل 61 واحد)، میله ها در اینجا کوچکتر از نمودارهای دیگر هستند، اما همه نمودارها متناسب با یکدیگر باقی می مانند. |
اسکریپت کدگذاری جاوا اسکریپت
برای استفاده در دنیای واقعی، احتمالاً رمزگذاری داده ها به صورت برنامه نویسی به جای دستی آسان تر است.
قطعه زیر از جاوا اسکریپت یک سری واحد را در کدگذاری ساده یا توسعه یافته رمزگذاری میکند و مقادیر دادهها را در محدوده کامل آن کدگذاری مقیاس میدهد. داده ها باید به صورت آرایه ای از اعداد مثبت ارائه شوند. هر مقداری که عدد مثبت نباشد با استفاده از کاراکتر زیرخط ( _
) به عنوان مقدار گمشده کدگذاری می شود.
var simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; // This function scales the submitted values so that // maxVal becomes the highest value. function simpleEncode(valueArray,maxValue) { var chartData = ['s:']; for (var i = 0; i < valueArray.length; i++) { var currentValue = valueArray[i]; if (!isNaN(currentValue) && currentValue >= 0) { chartData.push(simpleEncoding.charAt(Math.round((simpleEncoding.length-1) * currentValue / maxValue))); } else { chartData.push('_'); } } return chartData.join(''); } // Same as simple encoding, but for extended encoding. var EXTENDED_MAP= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.'; var EXTENDED_MAP_LENGTH = EXTENDED_MAP.length; function extendedEncode(arrVals, maxVal) { var chartData = 'e:'; for(i = 0, len = arrVals.length; i < len; i++) { // In case the array vals were translated to strings. var numericVal = new Number(arrVals[i]); // Scale the value to maxVal. var scaledVal = Math.floor(EXTENDED_MAP_LENGTH * EXTENDED_MAP_LENGTH * numericVal / maxVal); if(scaledVal > (EXTENDED_MAP_LENGTH * EXTENDED_MAP_LENGTH) - 1) { chartData += ".."; } else if (scaledVal < 0) { chartData += '__'; } else { // Calculate first and second digits and add them to the output. var quotient = Math.floor(scaledVal / EXTENDED_MAP_LENGTH); var remainder = scaledVal - EXTENDED_MAP_LENGTH * quotient; chartData += EXTENDED_MAP.charAt(quotient) + EXTENDED_MAP.charAt(remainder); } } return chartData; }
برای رمزگذاری داده ها، تابع simpleEncode
یا extendedEncode
را فراخوانی کنید، آرایه ای که حاوی داده های شما ( valueArray
) و حداکثر مقدار داده های شما ( maxValue
) است. برای ایجاد فاصله بین بالاترین مقدار و بالای نمودار، maxValue
به صورت زیر بزرگتر از بزرگترین عدد در آرایه داده تنظیم کنید:
var valueArray = new Array(0,1,4,4,6,11,14,17,23,28,33,36,43,59,65); var maxValue = 70; simpleEncode(valueArray, maxValue);