Ringkasan
Catatan: JavaScript menghitung bulan yang dimulai dari nol: 0 Januari, 1 Februari, dan 11 Desember. Jika Anda melihat grafik kalender Anda dalam satu bulan, inilah alasannya.
Diagram kalender adalah visualisasi yang digunakan untuk menampilkan aktivitas dalam rentang waktu yang lama, seperti bulan atau tahun. Jenis ini paling tepat digunakan jika Anda ingin menggambarkan variasi jumlah tertentu bergantung pada hari, atau trennya dari waktu ke waktu.
Diagram kalender mungkin akan mengalami revisi substansial dalam rilis Google Chart mendatang.
Diagram kalender dirender di browser menggunakan SVG atau VML, mana saja yang sesuai untuk browser pengguna. Seperti semua diagram Google, diagram kalender menampilkan tooltip saat pengguna mengarahkan kursor ke data. Dan kredit yang sesuai: bagan kalender kami terinspirasi oleh visualisasi kalender D3.
Contoh Sederhana
Katakanlah kita ingin menampilkan bagaimana variasi kehadiran tim olahraga sepanjang musim. Dengan diagram kalender, kita dapat menggunakan kecerahan untuk menunjukkan nilai dan memungkinkan orang melihat tren secara sekilas:
Anda dapat mengarahkan kursor ke setiap hari untuk melihat nilai data pokok.
  Untuk membuat diagram kalender, muat paket calendar, lalu buat dua kolom,
  satu untuk tanggal dan satu lagi untuk nilai. (Kolom ketiga opsional untuk gaya visual yang disesuaikan akan
  disertakan dalam rilis Google Chart mendatang.)
Kemudian isi baris Anda dengan pasangan nilai tanggal, seperti yang ditunjukkan di bawah ini.
<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>
Hari
Setiap persegi dalam diagram kalender mewakili satu hari. Saat ini, warna sel data tidak dapat disesuaikan, tetapi warna tersebut akan berubah pada rilis Google Chart berikutnya.
Jika semua nilai data positif, warnanya akan berkisar dari putih ke biru, dengan biru terdalam menunjukkan nilai tertinggi. Jika ada nilai data negatif, nilai tersebut akan berwarna oranye, seperti yang ditunjukkan di bawah ini.
Kode untuk kalender ini mirip dengan yang pertama, hanya saja barisnya terlihat seperti ini:
          [ 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 ],
Anda dapat mengubah ukuran hari ("sel") dengan opsi calendar.cellSize:
  Di sini, kita mengubah calendar.cellSize menjadi 10, yang mengecilkan hari dan juga diagram
  secara keseluruhan.
       var options = {
         title: 'Red Sox Attendance',
         calendar: { cellSize: 10 },
       };
Hari tanpa nilai data dapat disesuaikan dengan opsi noDataPattern:
  Di sini, kita menetapkan color ke biru muda dan backgroundColor ke
  warna yang sedikit lebih gelap:
       var options = {
         title: "Red Sox Attendance",
         height: 350,
         noDataPattern: {
           backgroundColor: '#76a7fa',
           color: '#a0c3ff'
         }
       };
  Anda dapat mengontrol warna batas sel, lebar batas, dan opasitas dengan
  calendar.cellColor:
  Anda harus berhati-hati dalam memilih warna goresan yang akan dibedakan dengan monthOutlineColor, atau memilih opasitas yang rendah. Berikut opsi untuk diagram di atas:
  var options = {
    title: 'Red Sox Attendance',
    height: 350,
    calendar: {
      cellColor: {
        stroke: '#76a7fa',
        strokeOpacity: 0.5,
        strokeWidth: 1,
      }
    }
  };
  Jika Anda berfokus pada satu hari dalam diagram di atas, batas akan ditandai dengan warna merah.  Anda dapat mengontrol perilaku tersebut dengan opsi calendar.focusedCellColor:
  var options = {
    title: 'Red Sox Attendance',
    height: 350,
    calendar: {
      focusedCellColor: {
        stroke: '#d3362d',
        strokeOpacity: 1,
        strokeWidth: 1,
      }
    }
  };
Minggu
  Secara default, hari diberi label dengan huruf pertama dari hari Minggu hingga Sabtu.
  Anda tidak dapat mengubah urutan hari, tetapi dapat mengubah huruf yang digunakan dengan
  opsi calendar.daysOfWeek. Selain itu, Anda dapat mengontrol padding antara hari dan diagram dengan calendar.dayOfWeekRightSpace, dan Anda dapat menyesuaikan gaya teks dengan calendar.dayOfWeekLabel:
Di sini, kita mengubah font label minggu, menempatkan padding 10 piksel di antara label dan data diagram, dan memulai minggu pada hari Senin.
  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',
    }
  };
Bulan
  Secara default, bulan ditandai dengan garis abu-abu tua. Anda dapat menggunakan opsi
  calendar.monthOutlineColor untuk mengontrol batas, calendar.monthLabel untuk menyesuaikan font label, dan
  calendar.underMonthSpace untuk menyesuaikan padding label:
Kami menyetel font label ke huruf tebal miring Times-Roman 12 pt merah tua, menyetel garis luar ke warna yang sama, dan menempatkan dalam padding 16 piksel. Garis batas bulan yang tidak digunakan disetel ke warna yang lebih redup dari rona yang sama.
  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,
    }
  };
Tahun
  Tahun dalam diagram kalender selalu berada di tepi kiri diagram, dan dapat disesuaikan dengan calendar.yearLabel dan calendar.underYearSpace:
Kami menetapkan font tahun ke hijau tua 32pt Times-Roman tebal miring, dan menambahkan sepuluh piksel di antara label tahun dan bagian bawah diagram:
  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
      }
    }
  };
Memuat
  Nama paket google.charts.load adalah "calendar":
  google.charts.load("current", {packages: ["calendar"]});
  Nama class visualisasi adalah google.visualization.Calendar:
var visualization = new google.visualization.Calendar(container);
Format Data
Baris: Setiap baris dalam tabel mewakili tanggal.
Kolom:
| Kolom 0 | Kolom 1 | ... | Kolom N (opsional) | |
|---|---|---|---|---|
| Tujuan: | Tanggal | Nilai | ... | Peran opsional | 
| Jenis Data: | tanggal, datetime, atau waktu | number | ... | |
| Peran: | domain | data | ... | |
| Peran kolom opsional: | None | None | ... | 
Opsi Konfigurasi
| Name | |
|---|---|
| calendar.cellColor | 
        Opsi  
var options = {
  calendar: {
    cellColor: {
      stroke: 'red',      // Color the border of the squares.
      strokeOpacity: 0.5, // Make the borders half transparent.
      strokeWidth: 2      // ...and two pixels thick.
    }
  }
};
      Jenis: objek Default:  { stroke: '#fff', strokeOpacity: 1, strokeWidth: 1 } | 
| calendar.cellSize | Ukuran kotak untuk hari kalender: 
var options = { calendar: { cellSize: 10 } };
      Jenis: bilangan bulat Default: 16 | 
| calendar.dayOfWeekLabel | Mengontrol gaya font label minggu di bagian atas diagram: 
var options = {
  calendar: {
    dayOfWeekLabel: {
      fontName: 'Times-Roman',
      fontSize: 12,
      color: 'black',
      bold: false,
      italic: false
    }
  }
};
      Jenis: objek 
        Default:
         { fontName: 'sans-serif', color: '#888', bold: false, italic: false } | 
| calendar.dayOfWeekRightSpace | Jarak antara tepi kanan label minggu dan tepi kiri kotak hari pada diagram. Jenis: bilangan bulat Default: 4 | 
| calendar.daysOfWeek | Label satu huruf yang digunakan untuk hari Minggu hingga Sabtu. Jenis: string Default:  'SMTWTFS' | 
| calendar.focusedCellColor | Saat pengguna berfokus (misalnya, dengan mengarahkan kursor) ke kotak hari, diagram kalender akan menyoroti kotak tersebut. 
var options = {
  calendar:
    focusedCellColor: {
      stroke: 'red',
      strokeOpacity: 0.8,
      strokeWidth: 3
    }
  }
};
      Jenis: objek Default:  { stroke: '#000', strokeOpacity: 1, strokeWidth: 2 } | 
| calendar.monthLabel | Gaya untuk label bulan, mis.: 
      var options = {
        calendar: {
          monthLabel: {
            fontName: 'Times-Roman',
            fontSize: 16,
            color: 'green',
            bold: true,
            italic: false
          }
        }
      };
      Jenis: objek 
        Default:
         { fontName: 'sans-serif', color: '#888', bold: false, italic: false } | 
| calendar.monthOutlineColor | Bulan dengan nilai data dipisahkan dari bulan lain menggunakan batas dengan gaya ini. 
var options = {
  calendar: {
    monthOutlineColor: {
      stroke: 'blue',
      strokeOpacity: 0.8,
      strokeWidth: 2
    }
  }
};
      (Lihat jugacalendar.unusedMonthOutlineColor.)Jenis: objek Default:  { stroke: '#000', strokeOpacity: 1, strokeWidth: 1 } | 
| calendar.underMonthSpace | Jumlah {i>pixel<i} antara label bagian bawah bulan dan bagian atas kotak hari: var options = { calendar: { underMonthSpace: 12 } };Jenis: bilangan bulat Default: 6 | 
| calendar.underYearSpace | Jumlah {i>pixel<i} antara label tahun paling bawah dan bagian bawah diagram: var options = { calendar: { underYearSpace: 2 } };Jenis: bilangan bulat Default: 0 | 
| calendar.unusedMonthOutlineColor | Bulan tanpa nilai data dipisahkan dari bulan lain menggunakan batas dengan gaya ini. 
var options = {
  calendar: {
    unusedMonthOutlineColor: {
      stroke: 'yellow',
      strokeOpacity: 0.8,
      strokeWidth: 2
    }
  }
};
      (Lihat jugacalendar.monthOutlineColor.)Jenis: objek 
        Default:
         { stroke: '#c9c9c9', strokeOpacity: 1, strokeWidth: 1 } | 
| colorAxis | Objek yang menentukan pemetaan antara nilai kolom warna dan warna atau skala gradien. Untuk menentukan properti objek ini, Anda dapat menggunakan notasi literal objek, seperti yang ditampilkan di sini:  {minValue: 0,  colors: ['#FF0000', '#00FF00']}Jenis: objek Default: null | 
| colorAxis.colors | 
      Warna untuk menetapkan nilai-nilai dalam visualisasi. Array string, dengan setiap elemennya adalah string warna HTML, misalnya:  Jenis: array string warna Default: null | 
| colorAxis.maxValue | 
      Jika ada, tentukan nilai maksimum untuk data warna diagram. Nilai data warna dari nilai ini dan yang lebih tinggi akan dirender sebagai warna terakhir dalam rentang  Jenis: nomor Default: Nilai maksimum kolom warna dalam data diagram | 
| colorAxis.minValue | 
      Jika ada, tentukan nilai minimum untuk data warna diagram. Nilai data warna dari nilai ini dan yang lebih rendah akan dirender sebagai warna pertama dalam rentang  Jenis: nomor Default: Nilai minimum kolom warna dalam data diagram | 
| colorAxis.values | 
      Jika ada, kontrol cara nilai dikaitkan dengan warna. Setiap nilai dikaitkan dengan warna yang sesuai dalam array  Jenis: array angka Default: null | 
| forceIFrame | Menggambar diagram di dalam bingkai inline. (Perhatikan bahwa pada IE8, opsi ini diabaikan; semua diagram IE8 digambar dalam i-frame.) Jenis: boolean Default: false | 
| tinggi | Tinggi diagram, dalam piksel. Jenis: nomor Default: tinggi elemen yang memuatnya | 
| noDataPattern | 
        Diagram kalender menggunakan pola diagonal bergaris untuk menunjukkan bahwa tidak ada data untuk
        hari tertentu. Gunakan opsi  
noDataPattern: {
  backgroundColor: '#76a7fa',
  color: '#a0c3ff'
}
      Jenis: objek Default: null | 
| tooltip.isHtml | 
        Setel ke  Catatan: penyesuaian konten tooltip HTML melalui peran data kolom tooltip tidak didukung oleh visualisasi Diagram Lingkaran dan Bagan Balon. Jenis: boolean Default: benar (true) | 
| lebar | Lebar diagram, dalam piksel. Jenis: nomor Default: lebar elemen yang memuatnya | 
Metode
| Metode | |
|---|---|
| draw(data, options) | 
      Menggambar diagram. Diagram menerima panggilan metode lebih lanjut hanya setelah peristiwa  Jenis Pengembalian: tidak ada | 
| getBoundingBox(id) | 
      Menampilkan objek yang berisi bagian kiri, atas, lebar, dan tinggi elemen diagram
       
 Nilai bersifat relatif terhadap penampung diagram. Panggil ini setelah diagram digambar. Jenis Pengembalian: objek | 
| getSelection() | 
      Menampilkan array entitas diagram yang dipilih.
    
      Entitas yang dapat dipilih adalah batang, entri legenda, dan kategori.
    
    
      
  Batang sesuai dengan sel dalam tabel data, entri legenda ke kolom (indeks baris null),
  dan kategori dengan baris (indeks kolom null).
    
    
      Untuk diagram ini, hanya satu entitas yang dapat dipilih pada waktu tertentu.
    
      
         Jenis Pengembalian: Array elemen pilihan | 
| setSelection() | 
      Memilih entitas diagram yang ditentukan. Membatalkan pilihan sebelumnya.
    
      Entitas yang dapat dipilih adalah batang, entri legenda, dan kategori.
    
    
      
  Batang sesuai dengan sel dalam tabel data, entri legenda ke kolom (indeks baris null),
  dan kategori dengan baris (indeks kolom null).
    
    
      Untuk diagram ini, hanya satu entitas yang dapat dipilih pada satu waktu.
    
      
         Jenis Pengembalian: tidak ada | 
| clearChart() | Mengosongkan diagram, dan melepaskan semua resource yang dialokasikan. Jenis Pengembalian: tidak ada | 
Acara
| Name | |
|---|---|
| error | Diaktifkan saat terjadi error saat mencoba merender diagram. Properties: id, pesan | 
| onmouseover | 
        Diaktifkan saat pengguna mengarahkan mouse ke entitas visual. Meneruskan kembali indeks baris dan nilai tanggal entity. Jika tidak ada elemen tabel data untuk entitas, nilai yang ditampilkan untuk indeks baris adalah  Properti: baris, tanggal | 
| onmouseout | 
        Diaktifkan saat pengguna menjauhi entity visual. Meneruskan kembali indeks baris dan nilai tanggal entity. Jika tidak ada elemen tabel data untuk entitas, nilai yang ditampilkan untuk indeks baris adalah  Properti baris, tanggal | 
| ready | 
      Diagram siap untuk panggilan metode eksternal. Jika ingin berinteraksi dengan diagram, dan memanggil metode setelah menggambarnya, Anda harus menyiapkan pemroses untuk peristiwa ini sebelum memanggil metode  Properti: tidak ada | 
| select | 
      Diaktifkan saat pengguna mengklik entitas visual. Untuk mempelajari apa yang telah dipilih, panggil
       Properti: tidak ada | 
Kebijakan Data
Semua kode dan data diproses dan dirender di browser. Tidak ada data yang dikirim ke server mana pun.