ภาพรวม
หมายเหตุ: JavaScript จะนับเดือนโดยเริ่มจาก 0 เช่น มกราคมคือ 0, กุมภาพันธ์คือ 1 และธันวาคมคือ 11 ด้วยเหตุนี้ หากแผนภูมิปฏิทินดูเหมือนจะคลาดเคลื่อนใน 1 เดือน
แผนภูมิปฏิทินคือการแสดงภาพที่ใช้เพื่อแสดงกิจกรรมในช่วงเวลาหนึ่ง เช่น เดือนหรือปี โดยควรใช้ได้ดีที่สุดเมื่อต้องการแสดงให้เห็นว่าจำนวนบางส่วนแตกต่างกันอย่างไรตามวันของสัปดาห์ หรือแนวโน้มเมื่อเวลาผ่านไป
แผนภูมิปฏิทินอาจอยู่ระหว่างการแก้ไขอย่างมากในการเปิดตัว Google แผนภูมิในอนาคต
แผนภูมิปฏิทินจะแสดงผลในเบราว์เซอร์โดยใช้ SVG หรือ VML แล้วแต่ว่าแบบใดจะเหมาะสมกับเบราว์เซอร์ของผู้ใช้ แผนภูมิปฏิทินจะแสดงเคล็ดลับเครื่องมือเมื่อผู้ใช้วางเมาส์เหนือข้อมูล เช่นเดียวกับแผนภูมิทั้งหมดของ Google และเครดิตที่ถึงกำหนด: แผนภูมิปฏิทินของเราได้รับแรงบันดาลใจมาจากการแสดงภาพปฏิทิน D3
ตัวอย่างง่ายๆ
สมมติว่าเราต้องการแสดงให้เห็นว่าการเข้าร่วมสำหรับทีมกีฬาหนึ่งๆ แตกต่างกันอย่างไรตลอดทั้งฤดูกาล แผนภูมิปฏิทินช่วยให้เราใช้ความสว่างเพื่อระบุค่าและให้ผู้ใช้เห็นเทรนด์ได้อย่างรวดเร็ว
วางเมาส์เหนือวันแต่ละวันเพื่อดูค่าของข้อมูลที่เกี่ยวข้อง
หากต้องการสร้างแผนภูมิปฏิทิน ให้โหลดแพ็กเกจ calendar
แล้วสร้าง 2 คอลัมน์ โดยคอลัมน์หนึ่งสำหรับวันที่และอีกคอลัมน์หนึ่งสำหรับค่า (คอลัมน์ที่ 3 (ไม่บังคับสำหรับการจัดรูปแบบที่กำหนดเอง) จะพร้อมใช้งานใน Google แผนภูมิในอนาคต)
จากนั้นกรอกข้อมูลในแถวของคุณด้วยคู่วันที่-ค่า ดังที่แสดงด้านล่าง
<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load("current", {packages:["calendar"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'date', id: 'Date' });
dataTable.addColumn({ type: 'number', id: 'Won/Loss' });
dataTable.addRows([
[ new Date(2012, 3, 13), 37032 ],
[ new Date(2012, 3, 14), 38024 ],
[ new Date(2012, 3, 15), 38024 ],
[ new Date(2012, 3, 16), 38108 ],
[ new Date(2012, 3, 17), 38229 ],
// Many rows omitted for brevity.
[ new Date(2013, 9, 4), 38177 ],
[ new Date(2013, 9, 5), 38705 ],
[ new Date(2013, 9, 12), 38210 ],
[ new Date(2013, 9, 13), 38029 ],
[ new Date(2013, 9, 19), 38823 ],
[ new Date(2013, 9, 23), 38345 ],
[ new Date(2013, 9, 24), 38436 ],
[ new Date(2013, 9, 30), 38447 ]
]);
var chart = new google.visualization.Calendar(document.getElementById('calendar_basic'));
var options = {
title: "Red Sox Attendance",
height: 350,
};
chart.draw(dataTable, options);
}
</script>
</head>
<body>
<div id="calendar_basic" style="width: 1000px; height: 350px;"></div>
</body>
</html>
วัน
สี่เหลี่ยมจัตุรัสแต่ละอันในแผนภูมิปฏิทินแสดงถึงวัน ขณะนี้ไม่สามารถปรับแต่งสีของเซลล์ข้อมูล แต่สีใน Google แผนภูมิรุ่นถัดไปจะมีการเปลี่ยนแปลง
หากค่าข้อมูลเป็นค่าบวกทั้งหมด สีจะอยู่ในช่วงตั้งแต่สีขาวไปจนถึงสีน้ำเงิน ส่วนสีน้ำเงินที่ลึกที่สุดจะระบุค่าสูงสุด หากมีค่าข้อมูลเชิงลบ ค่าจะปรากฏเป็นสีส้มดังที่แสดงด้านล่าง
รหัสของปฏิทินนี้คล้ายกับรหัสแรก ยกเว้นว่าแถวจะมีลักษณะดังนี้
[ new Date(2013, 9, 4), 10 ], [ new Date(2013, 9, 5), 3 ], [ new Date(2013, 9, 7), -1 ], [ new Date(2013, 9, 8), 2 ], [ new Date(2013, 9, 12), -1 ], [ new Date(2013, 9, 13), 1 ], [ new Date(2013, 9, 15), 1 ], [ new Date(2013, 9, 16), -4 ],
คุณสามารถเปลี่ยนขนาดของวัน ("เซลล์") ได้ด้วยตัวเลือก calendar.cellSize
ดังนี้
ในส่วนนี้ เราเปลี่ยน calendar.cellSize
เป็น 10 ทำให้จำนวนวันน้อยลงจึงแสดงแผนภูมิโดยรวม
var options = {
title: 'Red Sox Attendance',
calendar: { cellSize: 10 },
};
คุณปรับแต่งวันที่ไม่มีค่าข้อมูลได้โดยใช้ตัวเลือก noDataPattern
ดังนี้
ในตัวอย่างนี้ เราตั้งค่า color
เป็นสีน้ำเงินอ่อนและ backgroundColor
ให้สีเข้มขึ้นเล็กน้อย
var options = {
title: "Red Sox Attendance",
height: 350,
noDataPattern: {
backgroundColor: '#76a7fa',
color: '#a0c3ff'
}
};
คุณควบคุมสีเส้นขอบของเซลล์ ความกว้างเส้นขอบ และความทึบแสงของเซลล์ได้ด้วย calendar.cellColor
ดังนี้
คุณจะต้องเลือกสีเส้นโครงร่างที่ต่างจาก monthOutlineColor
หรือเลือกความทึบแสงต่ำด้วยความระมัดระวัง ตัวเลือกแผนภูมิด้านบนมีดังนี้
var options = {
title: 'Red Sox Attendance',
height: 350,
calendar: {
cellColor: {
stroke: '#76a7fa',
strokeOpacity: 0.5,
strokeWidth: 1,
}
}
};
หากคุณโฟกัสที่วันใดวันหนึ่งในแผนภูมิด้านบน เส้นขอบจะไฮไลต์เป็นสีแดง คุณควบคุมลักษณะการทำงานดังกล่าวได้ด้วยตัวเลือก calendar.focusedCellColor
ดังนี้
var options = {
title: 'Red Sox Attendance',
height: 350,
calendar: {
focusedCellColor: {
stroke: '#d3362d',
strokeOpacity: 1,
strokeWidth: 1,
}
}
};
สัปดาห์
โดยค่าเริ่มต้น วันของสัปดาห์จะมีป้ายกำกับเป็นตัวอักษรตัวแรกตั้งแต่วันอาทิตย์ถึงวันเสาร์
คุณเปลี่ยนลำดับของวันไม่ได้ แต่เปลี่ยนตัวอักษรที่จะใช้ได้ด้วยตัวเลือก calendar.daysOfWeek
นอกจากนี้ คุณยังควบคุมระยะห่างจากขอบระหว่างวันในสัปดาห์และแผนภูมิได้ด้วย calendar.dayOfWeekRightSpace
และยังปรับแต่งรูปแบบข้อความได้ด้วย calendar.dayOfWeekLabel
โดยทำดังนี้
เราเปลี่ยนแบบอักษรของป้ายกำกับสัปดาห์ เพิ่มระยะห่างระหว่างป้ายกำกับกับข้อมูลแผนภูมิ 10 พิกเซล และสัปดาห์เริ่มต้นในวันจันทร์
var options = {
title: 'Red Sox Attendance',
height: 350,
calendar: {
dayOfWeekLabel: {
fontName: 'Times-Roman',
fontSize: 12,
color: '#1a8763',
bold: true,
italic: true,
},
dayOfWeekRightSpace: 10,
daysOfWeek: 'DLMMJVS',
}
};
เดือน
โดยค่าเริ่มต้น ระบบจะระบุเดือนด้วยเส้นสีเทาเข้ม คุณใช้ตัวเลือก calendar.monthOutlineColor
เพื่อควบคุมเส้นขอบ ใช้ calendar.monthLabel
เพื่อปรับแต่งแบบอักษรของป้ายกำกับ และ calendar.underMonthSpace
เพื่อปรับระยะห่างจากขอบของป้ายกำกับได้ ดังนี้
เราตั้งค่าแบบอักษรของป้ายกำกับเป็นตัวเอียงหนาแบบสีแดงเข้ม 12 พอยต์ไทม์-โรมัน กำหนดโครงร่างเป็นสีเดียวกัน และใส่ระยะห่างจากขอบ 16 พิกเซล ระบบจะตั้งค่าโครงร่างเดือนที่ไม่ได้ใช้เป็นสีที่จางลงของสีเดียวกัน
var options = {
title: 'Red Sox Attendance',
height: 350,
calendar: {
monthLabel: {
fontName: 'Times-Roman',
fontSize: 12,
color: '#981b48',
bold: true,
italic: true
},
monthOutlineColor: {
stroke: '#981b48',
strokeOpacity: 0.8,
strokeWidth: 2
},
unusedMonthOutlineColor: {
stroke: '#bc5679',
strokeOpacity: 0.8,
strokeWidth: 1
},
underMonthSpace: 16,
}
};
ปี
ปีในแผนภูมิปฏิทินจะแสดงอยู่ที่ขอบด้านซ้ายของแผนภูมิเสมอ และจะปรับแต่งด้วย calendar.yearLabel
และ calendar.underYearSpace
ได้ดังนี้
เราตั้งค่าแบบอักษรปีเป็นสีเขียวเข้ม 32pt ตัวเอียงหนาแบบไทม์-โรมัน และเพิ่มพิกเซล 10 ระหว่าง ป้ายกำกับปีกับด้านล่างของแผนภูมิ ดังนี้
var options = {
title: 'Red Sox Attendance',
height: 350,
calendar: {
underYearSpace: 10, // Bottom padding for the year labels.
yearLabel: {
fontName: 'Times-Roman',
fontSize: 32,
color: '#1A8763',
bold: true,
italic: true
}
}
};
กำลังโหลด
ชื่อแพ็กเกจ google.charts.load
คือ "calendar"
:
google.charts.load("current", {packages: ["calendar"]});
ชื่อคลาสของการแสดงภาพคือ google.visualization.Calendar
var visualization = new google.visualization.Calendar(container);
รูปแบบข้อมูล
แถว: แต่ละแถวในตารางแสดงวันที่
คอลัมน์:
คอลัมน์ 0 | คอลัมน์ที่ 1 | ... | คอลัมน์ N (ไม่บังคับ) | |
---|---|---|---|---|
จุดประสงค์ในการใช้: | วันที่ | ค่า | ... | บทบาทที่ไม่บังคับ |
ประเภทข้อมูล: | วันที่ วันที่และเวลา หรือช่วงเวลาของวัน | ตัวเลข | ... | |
บทบาท: | โดเมน | ข้อมูล | ... | |
บทบาทของคอลัมน์ที่ไม่บังคับมีดังนี้ | ไม่มี |
ไม่มี |
... |
ตัวเลือกการกำหนดค่า
ชื่อ | |
---|---|
calendar.cellColor |
ตัวเลือก var options = { ประเภท: ออบเจ็กต์
ค่าเริ่มต้น:
{ stroke: '#fff', strokeOpacity: 1, strokeWidth: 1 } |
calendar.cellSize |
ขนาดของสี่เหลี่ยมจัตุรัสของวันตามปฏิทิน มีดังนี้ var options = { calendar: { cellSize: 10 } }; ประเภท: จำนวนเต็ม
ค่าเริ่มต้น: 16
|
calendar.dayOfWeekLabel |
ควบคุมรูปแบบตัวอักษรของป้ายกำกับสัปดาห์ที่ด้านบนของแผนภูมิ ดังนี้ var options = { ประเภท: ออบเจ็กต์
ค่าเริ่มต้น:
{ fontName: 'sans-serif', color: '#888', bold: false, italic: false }
|
calendar.dayOfWeekRightSpace |
ระยะห่างระหว่างขอบด้านขวาของป้ายกำกับสัปดาห์กับขอบด้านซ้ายของสี่เหลี่ยมจัตุรัสวันในแผนภูมิ ประเภท: จำนวนเต็ม
ค่าเริ่มต้น: 4
|
calendar.daysOfWeek |
ป้ายกำกับแบบตัวอักษรเดียวที่จะใช้สำหรับวันอาทิตย์ถึงวันเสาร์ ประเภท: สตริง
ค่าเริ่มต้น:
'SMTWTFS' |
calendar.focusedCellColor |
เมื่อผู้ใช้โฟกัส (เช่น วางเมาส์เหนือ) สี่เหลี่ยมจัตุรัสของวัน แผนภูมิปฏิทินจะไฮไลต์สี่เหลี่ยมจัตุรัส var options = { ประเภท: ออบเจ็กต์
ค่าเริ่มต้น:
{ stroke: '#000', strokeOpacity: 1, strokeWidth: 2 } |
calendar.monthLabel |
รูปแบบของป้ายกำกับเดือน เช่น var options = { ประเภท: ออบเจ็กต์
ค่าเริ่มต้น:
{ fontName: 'sans-serif', color: '#888', bold: false, italic: false }
|
calendar.monthOutlineColor |
เดือนที่มีค่าข้อมูลได้รับการกำหนดขอบเขตเป็นเดือนอื่นๆ โดยใช้เส้นขอบในรูปแบบนี้ var options = { calendar.unusedMonthOutlineColor ด้วย)
ประเภท: ออบเจ็กต์
ค่าเริ่มต้น:
{ stroke: '#000', strokeOpacity: 1, strokeWidth: 1 } |
calendar.underMonthSpace |
จำนวนพิกเซลระหว่างป้ายกำกับด้านล่างของเดือนกับจุดบนของวันเป็นสี่เหลี่ยมจัตุรัส var options = { calendar: { underMonthSpace: 12 } }; ประเภท: จำนวนเต็ม
ค่าเริ่มต้น: 6
|
calendar.underYearSpace |
จำนวนพิกเซลระหว่างป้ายกำกับปีด้านล่างสุดและด้านล่างของแผนภูมิ var options = { calendar: { underYearSpace: 2 } }; ประเภท: จำนวนเต็ม
ค่าเริ่มต้น: 0
|
calendar.unusedMonthOutlineColor |
เดือนที่ไม่มีค่าข้อมูลจะมีการกำหนดขอบเขตเป็นเดือนอื่นๆ โดยใช้เส้นขอบในรูปแบบนี้ var options = { calendar.monthOutlineColor ด้วย)
ประเภท: ออบเจ็กต์
ค่าเริ่มต้น:
{ stroke: '#c9c9c9', strokeOpacity: 1, strokeWidth: 1 }
|
colorAxis |
ออบเจ็กต์ที่ระบุการแมประหว่างค่าคอลัมน์สีกับสีหรือสเกลการไล่ระดับสี หากต้องการระบุคุณสมบัติของออบเจ็กต์นี้ คุณสามารถใช้รูปแบบลิเทอรัลของออบเจ็กต์ดังที่แสดงไว้ที่นี่ {minValue: 0, colors: ['#FF0000', '#00FF00']} ประเภท: ออบเจ็กต์
ค่าเริ่มต้น: null
|
colorAxis.colors |
สีที่จะกําหนดให้กับค่าในการแสดงภาพ อาร์เรย์ของสตริง โดยที่องค์ประกอบแต่ละรายการเป็นสตริงสี HTML เช่น ประเภท: อาร์เรย์ของสตริงสี
ค่าเริ่มต้น: null
|
colorAxis.maxValue |
หากมี ให้ระบุค่าสูงสุดสำหรับข้อมูลสีแผนภูมิ ค่าข้อมูลสีของค่านี้และที่สูงกว่าจะแสดงเป็นสีสุดท้ายในช่วง ประเภท: ตัวเลข
ค่าเริ่มต้น: ค่าสูงสุดของคอลัมน์สีในข้อมูลแผนภูมิ
|
colorAxis.minValue |
หากมี ให้ระบุค่าขั้นต่ำสำหรับข้อมูลสีแผนภูมิ ค่าข้อมูลสีของค่านี้และค่าที่ต่ำกว่าจะแสดงผลเป็นสีแรกในช่วง ประเภท: ตัวเลข
ค่าเริ่มต้น: ค่าขั้นต่ำของคอลัมน์สีในข้อมูลแผนภูมิ
|
colorAxis.values |
หากมี ให้ควบคุมการเชื่อมโยงค่ากับสี แต่ละค่าจะเชื่อมโยงกับสีที่สอดคล้องกันในอาร์เรย์ ประเภท: อาร์เรย์ของตัวเลข
ค่าเริ่มต้น: null
|
forceIFrame |
วาดแผนภูมิภายในเฟรมแบบอินไลน์ (โปรดทราบว่าใน IE8 ตัวเลือกนี้จะถูกละเว้น และแผนภูมิ IE8 ทั้งหมดวาดใน i-frame) ประเภท: บูลีน
ค่าเริ่มต้น: เท็จ
|
ส่วนสูง |
ความสูงของแผนภูมิเป็นพิกเซล ประเภท: ตัวเลข
ค่าเริ่มต้น: ความสูงขององค์ประกอบที่มีอยู่
|
noDataPattern |
แผนภูมิปฏิทินใช้เส้นทแยงมุมแบบลายทางเพื่อระบุว่าไม่มีข้อมูลของวันใดวันหนึ่ง ใช้ตัวเลือก noDataPattern: { ประเภท: ออบเจ็กต์
ค่าเริ่มต้น: null
|
tooltip.isHtml |
ตั้งค่าเป็น หมายเหตุ: การแสดงข้อมูลผ่านภาพแผนภูมิวงกลมและแผนภูมิฟองอากาศไม่รองรับการปรับแต่งเนื้อหาเคล็ดลับเครื่องมือ HTML ผ่านบทบาทข้อมูลในคอลัมน์เคล็ดลับเครื่องมือ ประเภท: บูลีน
ค่าเริ่มต้น: true
|
ความกว้าง |
ความกว้างของแผนภูมิเป็นพิกเซล ประเภท: ตัวเลข
ค่าเริ่มต้น: ความกว้างขององค์ประกอบที่มีอยู่
|
วิธีการ
วิธีการ | |
---|---|
draw(data, options) |
วาดแผนภูมิ แผนภูมิยอมรับการเรียกใช้เมธอดเพิ่มเติมหลังจากที่เหตุการณ์ ประเภทการคืนสินค้า: ไม่มี
|
getBoundingBox(id) |
แสดงผลออบเจ็กต์ที่มีด้านซ้าย ด้านบน ความกว้าง และความสูงขององค์ประกอบแผนภูมิ
ค่าจะสัมพันธ์กับคอนเทนเนอร์ของแผนภูมิ เรียกใช้หลังจากที่มีการวาดแผนภูมิ ประเภทผลลัพธ์: ออบเจ็กต์
|
getSelection() |
แสดงผลอาร์เรย์ของเอนทิตีแผนภูมิที่เลือก
เอนทิตีที่เลือกได้คือแท่ง รายการคำอธิบาย และหมวดหมู่
แถบจะสอดคล้องกับเซลล์ในตารางข้อมูล คำอธิบายรายการในคอลัมน์ (ดัชนีแถวเป็นค่าว่าง) และหมวดหมู่ของแถว (ดัชนีคอลัมน์เป็นค่าว่าง)
สำหรับแผนภูมินี้ คุณสามารถเลือกเอนทิตีได้เพียง 1 รายการในช่วงเวลาหนึ่งๆ
ประเภทผลลัพธ์: อาร์เรย์ขององค์ประกอบการเลือก
|
setSelection() |
เลือกเอนทิตีแผนภูมิที่ระบุ ยกเลิกรายการที่เลือกก่อนหน้า
เอนทิตีที่เลือกได้คือแท่ง รายการคำอธิบาย และหมวดหมู่
แถบจะสอดคล้องกับเซลล์ในตารางข้อมูล คำอธิบายรายการในคอลัมน์ (ดัชนีแถวเป็นค่าว่าง) และหมวดหมู่ของแถว (ดัชนีคอลัมน์เป็นค่าว่าง)
สำหรับแผนภูมินี้ คุณสามารถเลือกเอนทิตีได้ครั้งละ 1 รายการเท่านั้น
ประเภทการคืนสินค้า: ไม่มี
|
clearChart() |
ล้างแผนภูมิ และปล่อยทรัพยากรที่จัดสรรทั้งหมด ประเภทการคืนสินค้า: ไม่มี
|
กิจกรรม
ชื่อ | |
---|---|
error |
เริ่มทำงานเมื่อเกิดข้อผิดพลาดขณะพยายามแสดงผลแผนภูมิ พร็อพเพอร์ตี้: รหัส ข้อความ
|
onmouseover |
เริ่มทำงานเมื่อผู้ใช้วางเมาส์เหนือเอนทิตีที่มีภาพ ส่งกลับดัชนีแถวและค่าวันที่ของเอนทิตี หากไม่มีองค์ประกอบตารางข้อมูลสำหรับเอนทิตี ค่าที่ส่งคืนสำหรับดัชนีแถวจะเป็น พร็อพเพอร์ตี้: แถว, วันที่
|
onmouseout |
เริ่มทำงานเมื่อผู้ใช้เลื่อนเมาส์ออกห่างจากองค์ประกอบภาพ ส่งกลับดัชนีแถวและค่าวันที่ของเอนทิตี หากไม่มีองค์ประกอบตารางข้อมูลสำหรับเอนทิตี ค่าที่ส่งคืนสำหรับดัชนีแถวจะเป็น แถวที่พัก วันที่
|
ready |
แผนภูมิพร้อมสำหรับการเรียกใช้เมธอดภายนอกแล้ว หากต้องการโต้ตอบกับแผนภูมิและวิธีเรียกใช้หลังจากที่วาดแล้ว คุณควรตั้งค่า Listener สำหรับเหตุการณ์นี้ก่อนเรียกใช้เมธอด พร็อพเพอร์ตี้: ไม่มี
|
select |
เริ่มทำงานเมื่อผู้ใช้คลิกเอนทิตีภาพ หากต้องการดูสิ่งที่เลือก โปรดโทรหา
พร็อพเพอร์ตี้: ไม่มี
|
นโยบายข้อมูล
โค้ดและข้อมูลทั้งหมดจะได้รับการประมวลผลและแสดงผลในเบราว์เซอร์ โดยจะไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์ใดๆ