סקירה כללית
ייצוג חזותי של עץ נתונים, שבו לכל צומת יכולים להיות אפס צאצאים או יותר, והורה אחד (למעט ברמה הבסיסית (root) שאין לה הורה). כל צומת מוצג כמלבן, בגודל ובצבע בהתאם לערכים שהקציתם. הגדלים והצבעים מוערכים ביחס לכל הצמתים האחרים בתרשים. אפשר לציין כמה רמות להציג בו-זמנית, ואפשר גם להציג רמות עמוקות יותר לפי הרמז. אם צומת הוא צומת עלה, אפשר לציין גודל וצבע. אם הוא לא עלה, הוא יוצג כתיבה תוחמת (bounding box) לצומתי עלים. התנהגות ברירת המחדל היא לזוז למטה בעץ כשמשתמש לוחץ לחיצה שמאלית על צומת, ולעבור חזרה למעלה לעץ כאשר המשתמש לוחץ לחיצה ימנית על התרשים.
הגודל הכולל של התרשים נקבע לפי גודל הרכיב שמכיל שמוסיפים בדף. אם יש לך צומתי עלים שהשמות שלהם ארוכים מדי להצגה, השם ייחתך ויופיע עם שלוש נקודות (...).
דוגמה
<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['treemap']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Location', 'Parent', 'Market trade volume (size)', 'Market increase/decrease (color)'],
['Global', null, 0, 0],
['America', 'Global', 0, 0],
['Europe', 'Global', 0, 0],
['Asia', 'Global', 0, 0],
['Australia', 'Global', 0, 0],
['Africa', 'Global', 0, 0],
['Brazil', 'America', 11, 10],
['USA', 'America', 52, 31],
['Mexico', 'America', 24, 12],
['Canada', 'America', 16, -23],
['France', 'Europe', 42, -11],
['Germany', 'Europe', 31, -2],
['Sweden', 'Europe', 22, -13],
['Italy', 'Europe', 17, 4],
['UK', 'Europe', 21, -5],
['China', 'Asia', 36, 4],
['Japan', 'Asia', 20, -12],
['India', 'Asia', 40, 63],
['Laos', 'Asia', 4, 34],
['Mongolia', 'Asia', 1, -5],
['Israel', 'Asia', 12, 24],
['Iran', 'Asia', 18, 13],
['Pakistan', 'Asia', 11, -52],
['Egypt', 'Africa', 21, 0],
['S. Africa', 'Africa', 30, 43],
['Sudan', 'Africa', 12, 2],
['Congo', 'Africa', 10, 12],
['Zaire', 'Africa', 8, 10]
]);
tree = new google.visualization.TreeMap(document.getElementById('chart_div'));
tree.draw(data, {
minColor: '#f00',
midColor: '#ddd',
maxColor: '#0d0',
headerHeight: 15,
fontColor: 'black',
showScale: true
});
}
</script>
</head>
<body>
<div id="chart_div" style="width: 900px; height: 500px;"></div>
</body>
</html>
נתוני שימוש
ניתן לציין אם הרכיבים צריכים להדגיש, ולהגדיר צבעים ספציפיים שישמשו רכיבים מסוימים במקרה הזה. כדי להפעיל את ההדגשה, מגדירים את הערך highlightOnMouseOver:true (לגרסה v49 ומטה) או את enableHighlight: true (לגרסה v50 ואילך). אחר כך אפשר להגדיר את הצבעים לשימוש להדגשת רכיבים באמצעות האפשרויות השונות HighlightColor.
var options = { // For v49 or before
highlightOnMouseOver: true,
maxDepth: 1,
maxPostDepth: 2,
minHighlightColor: '#8c6bb1',
midHighlightColor: '#9ebcda',
maxHighlightColor: '#edf8fb',
minColor: '#009688',
midColor: '#f7f7f7',
maxColor: '#ee8100',
headerHeight: 15,
showScale: true,
height: 500,
useWeightedAverageForAggregation: true
};
var optionsV50 = { // For v50+
enableHighlight: true,
maxDepth: 1,
maxPostDepth: 2,
minHighlightColor: '#8c6bb1',
midHighlightColor: '#9ebcda',
maxHighlightColor: '#edf8fb',
minColor: '#009688',
midColor: '#f7f7f7',
maxColor: '#ee8100',
headerHeight: 15,
showScale: true,
height: 500,
useWeightedAverageForAggregation: true,
// Use click to highlight and double-click to drill down.
eventsConfig: {
highlight: ['click'],
unhighlight: ['mouseout'],
rollup: ['contextmenu'],
drilldown: ['dblclick'],
}
};
טיפים
כברירת מחדל, הסברים קצרים במפת העצים הם בסיסיים, ומראים את התווית של התא ב-Treemap. האפשרות הזו שימושית אם התאים קטנים מדי ולא יכולים להכיל את התוויות, אבל תוכלו להתאים אותם אישית עוד יותר כפי שמתואר בקטע הזה.
הסברים קצרים במפת עצים מותאמים אישית בצורה שונה מתרשימים אחרים: מגדירים פונקציה ואז מגדירים את האפשרות generateTooltip לפונקציה הזו. דוגמה פשוטה:
בתרשים שלמעלה אנחנו מגדירים פונקציה בשם showStaticTooltip שפשוט מחזירה מחרוזת עם קוד ה-HTML שיוצג בכל פעם שהמשתמש מעביר את סמן העכבר מעל תא של מפת העצים. רוצה לנסות? הקוד שיש ליצור:
var options = {
minColor: '#e7711c',
midColor: '#fff',
maxColor: '#4374e0',
showScale: true,
generateTooltip: showStaticTooltip
};
tree.draw(data, options);
function showStaticTooltip(row, size, value) {
return '<div style="background:#fd9; padding:10px; border-style:solid">' +
'Read more about the <a href="http://en.wikipedia.org/wiki/Kingdom_(biology)">kingdoms of life</a>.</div>';
}
הפונקציה generateTooltip יכולה להיות כל JavaScript שתרצו. בדרך כלל רצוי הסברים קצרים שמשתנים בהתאם לערכי הנתונים. הדוגמה הבאה מראה איך לגשת לכל שדה בטבלת הנתונים.
אם תעבירו את העכבר מעל התאים במפת העץ שלמעלה, תראו הסבר קצר שונה על כל תא. לכל הפונקציות הקצרות של מפת העצים יש שלושה ערכים: row, size ו-value.
row: השורה של התא בטבלת הנתוניםsize: סכום הערך (עמודה 3) של התא הזה וכל הצאצאים שלוvalue: צבע התא, מבוטא כמספר בין 0 ל-1
בפונקציה showFullTooltip, המחרוזת שאנחנו מחזירים היא תיבת HTML עם חמש שורות:
- שורה 1 מציגה את השורה המתאימה מטבלת הנתונים, תוך שימוש ליברלי ב-
data.getValue. - שורה 2 מציינת איזו שורה היא רק הפרמטר
row. - בשורה 3 מופיע מידע מעמודה 3 של טבלת הנתונים: סכום הערך של עמודה 3 מהשורה הזו, בנוסף לערכים מהצאצאים.
- שורה 4 מספקת מידע מעמודה 4 של טבלת הנתונים. זהו הערך, אבל הוא מבוטא כמספר בין 0 ל-1 התואם לצבע של התא.
var options = {
minColor: '#e7711c',
midColor: '#fff',
maxColor: '#4374e0',
showScale: true,
generateTooltip: showFullTooltip
};
tree.draw(data, options);
function showFullTooltip(row, size, value) {
return '<div style="background:#fd9; padding:10px; border-style:solid">' +
'<span style="font-family:Courier"><b>' + data.getValue(row, 0) +
'</b>, ' + data.getValue(row, 1) + ', ' + data.getValue(row, 2) +
', ' + data.getValue(row, 3) + '</span><br>' +
'Datatable row: ' + row + '<br>' +
data.getColumnLabel(2) +
' (total value of this cell and its children): ' + size + '<br>' +
data.getColumnLabel(3) + ': ' + value + ' </div>';
}
}
בטעינה
שם החבילה של google.charts.load הוא "treemap".
google.charts.load("current", {packages: ["treemap"]});
שם הכיתה של התצוגה החזותית הוא google.visualization.TreeMap.
var visualization = new google.visualization.TreeMap(container);
פורמט נתונים
כל שורה בטבלת הנתונים מתארת צומת אחד (מלבן בתרשים). לכל צומת (מלבד צומת הרמה הבסיסית (root)) יש צומת הורה אחד. הגודל והצבע של כל צומת נקבעים לפי הערכים שלו ביחס לצמתים האחרים שמוצגים כרגע.
טבלת הנתונים צריכה לכלול ארבע עמודות בפורמט הבא:
- עמודה 0 - [string] מזהה לצומת הזה. היא יכולה להיות כל מחרוזת JavaScript חוקית, כולל רווחים וכל אורך שמחרוזת יכולה להכיל. הערך מוצג ככותרת הצומת.
- עמודה 1 - [string] - המזהה של צומת ההורה. אם זהו צומת הרמה הבסיסית (root), יש להשאיר אותו ריק. לכל מפת עצים יכול להיות רק שורש אחד.
- עמודה 2 - [מספר] - גודל הצומת. מותר להשתמש בכל ערך חיובי. הערך הזה קובע את גודל הצומת, המחושב ביחס לכל הצמתים האחרים שמוצגים כרגע. בצמתים ללא עלים, המערכת מתעלמת מהערך הזה ומחושב על סמך הגודל של כל הצאצאים שלו.
- עמודה 3 – [אופציונלי, number] – ערך אופציונלי שמשמש לחישוב צבע בצומת הזה. מותר להשתמש בכל ערך, חיובי או שלילי.
קודם כל, ערך הצבע מחושב מחדש בסולם מ-
minColorValueעדmaxColorValue, ולאחר מכן לצומת מוקצה צבע מההדרגתיות ביןminColorל-maxColor.
אפשרויות הגדרה
| שם | |
|---|---|
| הפעלת הדגשה (לגרסה v50 ומעלה) |
ההגדרה קובעת אם רכיבים צריכים להציג אפקטים מודגשים. הטריגר שמוגדר כברירת מחדל הוא כשמעבירים את העכבר מעליו.
אפשר להגדיר את הטריגר באמצעות סוג: בוליאני
ברירת מחדל: false
|
| eventsConfig (עבור v50+ ) |
הגדרת האירוע להפעלת אינטראקציות במפת העץ. פורמט להגדרת אינטראקציות:
eventsConfig: {
interaction1: undefined, // or missing
interaction2: [], // disable
interaction3: [
'mouse_event',
'optional_key1',
'optional_key2',
'optional_key3',
'optional_key4'
],
...,
}
אם מערך התצורה לא מוגדר או חסר לאינטראקציה, ייעשה שימוש בברירת המחדל.
אם ההגדרה היא מערך ריק, האינטראקציה תושבת.
כדי לקבל הגדרה חוקית, המאפיין
mouse_event חייב להיות פרמטר נתמך בעכבר. בשלב הבא אפשר להשתמש בעד ארבעה מקשי צירוף מפתחות אופציונליים.
דוגמה לשימוש בפקודה Control+Shift+Right_Click כדי להעלות את העץ:
{ rollup: ['contextmenu', 'ctrlKey', 'shiftKey'] }Type: object (סוג אובייקט)
ברירת המחדל:
{
highlight: ['mouseover'],
unhighlight: ['mouseout'],
rollup: ['contextmenu'], // right-click
drilldown: ['click']
}
|
| fontColor |
צבע הטקסט. מציינים ערך צבע של HTML. סוג: מחרוזת
ברירת מחדל: #⌘
|
| fontFamily |
משפחת הגופנים לשימוש בכל הטקסט. סוג: מחרוזת
ברירת מחדל: אוטומטי
|
| fontSize |
גודל הגופן של כל הטקסט, בנקודות. סוג: מספר
ברירת מחדל: 12
|
| forceIFrame |
משרטטים את התרשים בתוך מסגרת בתוך מסגרת. (שימו לב שב-IE8 המערכת מתעלמת מהאפשרות הזו. כל התרשימים של IE8 משורטטים במסגרות i-frames). סוג: בוליאני
ברירת מחדל: false
|
| headerColor |
הצבע של קטע הכותרת עבור כל צומת. מציינים ערך צבע של HTML. סוג: מחרוזת
ברירת מחדל: #988f86
|
| headerHeight |
הגובה של קטע הכותרת בכל צומת, בפיקסלים (הוא יכול להיות אפס). מספר סוג
ברירת מחדל: 0
|
| headerHighlightColor |
צבע הכותרת של צומת שמעליו מעבירים את העכבר. מציינים ערך של צבע HTML או ערך null.
אם הערך הזה ריק, הערך של סוג: מחרוזת
ברירת מחדל: null
|
| MarkOnMouseOver (הוצא משימוש עבור v50+ ) |
הוצא משימוש לגרסה 50 ואילך. לגרסה 50 ואילך, יש להשתמש ב- סוג: בוליאני
ברירת מחדל: false
|
| hintOpacity |
כשהערך של סוג: מספר
ברירת מחדל: 0.0
|
| maxColor |
הצבע של מלבן עם ערך עמודה 3 של סוג: מחרוזת
ברירת מחדל: #00dd00
|
| maxDepth |
המספר המקסימלי של רמות צמתים שיוצגו בתצוגה הנוכחית. הרמות ישוכפלו
למישור הנוכחי. אם בעץ יש יותר רמות גבוהות, צריך לעלות או לרדת כדי לראות אותן. בנוסף, אפשר לראות סוג: מספר
ברירת מחדל: 1
|
| maxHighlightColor |
צבע ההדגשה לשימוש עבור הצומת עם הערך הגדול ביותר בעמודה 3. מציינים ערך צבע
HTML או ערך null. אם הערך הוא null, הערך הזה יהיה הערך של סוג: מחרוזת
ברירת מחדל: null
|
| maxPostDepth |
מספר רמות הצמתים מעבר ל- סוג: מספר
ברירת מחדל: 0
|
| maxColorValue |
הערך המקסימלי המותר בעמודה 3. כל הערכים שגדולים מהערך הזה ייחתכו. אם הוא מוגדר כ-null, הוא יוגדר לערך המקסימלי בעמודה. סוג: מספר
ברירת מחדל: null
|
| midColor |
הצבע של מלבן עם ערך בעמודה 3 באמצע בין סוג: מחרוזת
ברירת מחדל: #000000
|
| midHighlightColor |
צבע ההדגשה שבו צריך להשתמש עבור הצומת עם ערך בעמודה 3 ליד החציון של סוג: מחרוזת
ברירת מחדל: null
|
| minColor |
הצבע של מלבן שערך עמודה 3 שלו הוא סוג: מחרוזת
ברירת מחדל: #dd0000
|
| minHighlightColor |
צבע ההדגשה שבו צריך להשתמש לצומת עם הערך בעמודה 3 שהכי קרוב
ל- סוג: מחרוזת
ברירת מחדל: null
|
| minColorValue |
הערך המינימלי המותר בעמודה 3. כל הערכים הנמוכים יותר מהערך הזה ייחתכו לערך הזה. אם הערך שמוגדר הוא null, הוא יחושב כערך המינימלי בעמודה. סוג: מספר
ברירת מחדל: null
|
| noColor |
הצבע של מלבן כאשר לצומת אין ערך בעמודה 3, והצומת הוא עלה (או מכיל רק עלים). מציינים ערך צבע של HTML. סוג: מחרוזת
ברירת מחדל: #000000
|
| noHighlightColor |
הצבע שבו יש להשתמש למלבן שצבעו 'לא' מודגש. מציינים ערך צבע
HTML או ערך null. אם הערך הוא null, הערך של סוג: מחרוזת
ברירת מחדל: null
|
| showScale |
הגדרה שקובעת אם להציג סולם צבעים הדרגתי מ- סוג: בוליאני
ברירת מחדל: false
|
| showTooltips |
הגדרה שקובעת אם להציג הסברים קצרים. סוג: בוליאני
ברירת מחדל: True
|
| textStyle |
אובייקט שמציין את סגנון הטקסט, לתרשימים מסוימים שבאזור התוכן שלהם יש טקסט, למשל מפת העץ. זהו הפורמט של האובייקט:
{ color: <string>,
fontName: <string>,
fontSize: <number>,
bold: <boolean>,
italic: <boolean> }
הערך Type: object (סוג אובייקט)
ברירת המחדל:
{color: 'black', fontName: <global-font-name>, fontSize: <global-font-size>}
|
| title |
טקסט להצגה מעל התרשים. סוג: מחרוזת
ברירת מחדל: ללא שם
|
| titleTextStyle |
אובייקט שמציין את סגנון טקסט הכותרת. זהו הפורמט של האובייקט:
{ color: <string>,
fontName: <string>,
fontSize: <number>,
bold: <boolean>,
italic: <boolean> }
הערך Type: object (סוג אובייקט)
ברירת המחדל:
{color: 'black', fontName: <global-font-name>, fontSize: <global-font-size>}
|
| useWeightedAverageForAggregation |
האם להשתמש בממוצעים משוקללים לצורך צבירה. סוג: בוליאני
ברירת מחדל: false
|
שיטות
| שיטה | |
|---|---|
draw(data, options) |
מצייר את התרשים. סוג החזרה: ללא
|
getEventsConfig() (for v50+) |
מחזירה את ההגדרה הנוכחית של האינטראקציה. אפשר להשתמש בו כדי לאמת את אפשרות ההגדרה סוג החזרה: אובייקט
{ // An empty array (i.e. []) means the interaction is disabled.
highlight: string[],
unhighlight: string[],
rollup: string[],
drilldown: string[] }
|
getSelection() |
הטמעה רגילה של סוג החזרה: מערך של רכיבי בחירה
|
setSelection() |
הטמעה רגילה של סוג החזרה: ללא
|
goUpAndDraw() |
העבר את העץ רמה אחת למעלה וצייר אותו מחדש. לא תקפיץ הודעת שגיאה אם הצומת הוא צומת הרמה הבסיסית (root). ההגדרה הזו מופעלת באופן אוטומטי כשהמשתמש לוחץ לחיצה ימנית על צומת. סוג החזרה: ללא
|
getMaxPossibleDepth() |
מחזירה את העומק המרבי האפשרי של התצוגה הנוכחית. סוג החזרה: מספר
|
clearChart() |
ניקוי התרשים וכל המשאבים שהוקצו לו. סוג החזרה: ללא
|
אירועים
eventsConfig מוסבר איך מגדירים טריגרים של אירועים.| שם | |
|---|---|
onmouseover |
מופעל כשהמשתמש מעביר את העכבר מעל צומת. הגורם המטפל באירועים מועבר לאינדקס השורה של הרשומה המתאימה בטבלת הנתונים. מאפיינים: שורה
|
highlight (for v50+) |
מופעל כשהמשתמש מדגיש צומת. הטריגר שמוגדר כברירת מחדל הוא ריחוף עם העכבר.
אפשר להגדיר אותו באמצעות מאפיינים: שורה
|
onmouseout |
מופעל כשהמשתמש מעביר את העכבר אל מחוץ לצומת. הגורם המטפל באירועים מועבר לאינדקס השורה של הרשומה המתאימה בטבלת הנתונים. מאפיינים: שורה
|
unhighlight (for v50+) |
מופעל כשהמשתמש מבטל את ההדגשה של צומת. הטריגר שמוגדר כברירת מחדל הוא שחרור העכבר.
אפשר להגדיר אותו באמצעות מאפיינים: שורה
|
ready |
מופעל כשהתרשים מוכן לקריאות method חיצוניות. כדי לבצע אינטראקציה עם התרשים,
ושל שיטות קריאה אחרי שרטוט, צריך להגדיר האזנה לאירוע הזה
לפני שמפעילים את ה-method מאפיינים: ללא
|
rollup |
מופעל כשהמשתמש מנווט חזרה למעלה בעץ. טריגר ברירת המחדל הוא לחיצה ימנית.
אפשר להגדיר אותו באמצעות מאפיינים: שורה
|
select |
מופעל כשהמשתמש מציג פירוט או מגלגל צומת. מופעל גם כשמתבצעת קריאה ל-method מאפיינים:ללא
|
drilldown (for v50+) |
מופעל כשהמשתמש מנווט עמוק יותר לתוך העץ. הטריגר שמוגדר כברירת מחדל הוא לחיצה.
אפשר להגדיר אותו באמצעות מאפיינים:ללא
|
המדיניות בנושא נתונים
כל הקוד והנתונים מעובדים ומעובדים בדפדפן. לא נשלחים נתונים לאף שרת.