Garis Waktu

Ringkasan

Linimasa adalah diagram yang menggambarkan cara penggunaan serangkaian resource dari waktu ke waktu. Jika Anda mengelola project software dan ingin mengilustrasikan siapa yang melakukan apa dan kapan, atau jika Anda mengadakan konferensi dan perlu menjadwalkan ruang rapat, linimasa sering kali merupakan pilihan visualisasi yang wajar. Salah satu jenis linimasa yang populer adalah diagram Gantt.

Catatan: Pada objek Tanggal JavaScript, bulan diindeks mulai dari nol dan naik hingga sebelas, dengan Januari menjadi bulan 0 dan Desember menjadi bulan 11. Jika linimasa Anda sepertinya sebulan, ini kemungkinan besar alasannya. Untuk informasi selengkapnya, lihat halaman Tanggal dan Waktu.

Contoh sederhana

Misalnya, Anda ingin merencanakan kapan presiden Amerika menjalankan persyaratannya. Di sini, "resource" adalah presiden, dan kita dapat memetakan setiap persyaratan presiden sebagai batang:

Mengarahkan kursor ke panel akan menampilkan tooltip dengan informasi yang lebih mendetail.

Setelah memuat paket timeline dan menentukan callback untuk menggambar diagram saat halaman dirender, metode drawChart() akan membuat instance google.visualization.Timeline(), lalu mengisi dataTable dengan satu baris untuk setiap presiden.

Di dalam dataTable, kolom pertama adalah nama presiden, dan kolom kedua serta ketiga adalah waktu mulai dan akhir. Keduanya memiliki jenis Date JavaScript, tetapi juga dapat berupa angka biasa.

Terakhir, kita memanggil metode draw() diagram, yang menampilkannya di dalam div dengan ID yang sama (timeline) yang digunakan saat container dideklarasikan di baris pertama drawChart().

<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['timeline']});
      google.charts.setOnLoadCallback(drawChart);
      function drawChart() {
        var container = document.getElementById('timeline');
        var chart = new google.visualization.Timeline(container);
        var dataTable = new google.visualization.DataTable();

        dataTable.addColumn({ type: 'string', id: 'President' });
        dataTable.addColumn({ type: 'date', id: 'Start' });
        dataTable.addColumn({ type: 'date', id: 'End' });
        dataTable.addRows([
          [ 'Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
          [ 'Adams',      new Date(1797, 2, 4),  new Date(1801, 2, 4) ],
          [ 'Jefferson',  new Date(1801, 2, 4),  new Date(1809, 2, 4) ]]);

        chart.draw(dataTable);
      }
    </script>
  </head>
  <body>
    <div id="timeline" style="height: 180px;"></div>
  </body>
</html>

Linimasa Google Chart dapat disesuaikan dan dalam contoh berikut kami akan menunjukkan beberapa cara umum untuk menyesuaikan tampilan linimasa Anda.

Memberi label batang

Selain label baris ("Washington", "Adams", "Jefferson", di atas), Anda dapat memberi label pada batang individual. Di sini, kami mengubah label baris menjadi angka sederhana dan menempatkan setiap nama presiden di kolomnya.

Dalam kode ini, kami telah menyisipkan kolom baru ke dalam data untuk menyimpan label batang: nama lengkap setiap presiden. Jika ada empat kolom dalam linimasa dataTable, yang pertama ditafsirkan sebagai label baris, yang kedua sebagai label batang, dan yang ketiga serta keempat sebagai awal dan akhir.

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var container = document.getElementById('example2.1');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();

    dataTable.addColumn({ type: 'string', id: 'Term' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });

    dataTable.addRows([
      [ '1', 'George Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
      [ '2', 'John Adams',        new Date(1797, 2, 4),  new Date(1801, 2, 4) ],
      [ '3', 'Thomas Jefferson',  new Date(1801, 2, 4),  new Date(1809, 2, 4) ]]);

    chart.draw(dataTable);
  }
</script>

<div id="example2.1" style="height: 200px;"></div>

Label baris baru di atas tidak terlalu informatif, jadi mari kita hapus label tersebut dengan opsi linimasa showRowLabels.

Secara default, showRowLabels adalah true. Menyetelnya ke false akan menghapus label baris:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var container = document.getElementById('example2.2');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'Term' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ '1', 'George Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
      [ '2', 'John Adams',        new Date(1797, 2, 4),  new Date(1801, 2, 4) ],
      [ '3', 'Thomas Jefferson',  new Date(1801, 2, 4),  new Date(1809, 2, 4) ]]);

    var options = {
      timeline: { showRowLabels: false }
    };

    chart.draw(dataTable, options);
  }
</script>

<div id="example2.2" style="height: 180px;"></div>

Contoh lanjutan

Untuk membuat linimasa lebih kompleks, mari kita tambahkan wakil presiden dan sekretaris negara ke diagram kami. John Adams adalah wakil presiden sebelum ia menjadi presiden, dan Thomas Jefferson merupakan sekretaris negara bagian, lalu wakil presiden, dan terakhir sebagai presiden.

Dalam linimasa, resource akan memiliki warna yang sama meskipun muncul di beberapa baris, sehingga pada diagram berikut setiap orang direpresentasikan dengan warna yang konsisten.

Beberapa sekretaris negara bagian ditayangkan dalam waktu yang sangat singkat, sehingga diagram ini merupakan pengujian pelabelan yang baik. Jika label terlalu besar untuk batang, label akan disingkat atau dihilangkan, bergantung pada ukuran batangnya. Pengguna selalu dapat mengarahkan kursor ke kolom untuk mendapatkan informasi tooltip.

Linimasa akan menata letak baris secara berurutan—presiden atas wakil presiden di atas sekretaris negara—karena itu adalah urutan kemunculannya dalam kode di bawah ini. Namun, tata letak batang hanya ditentukan oleh waktu mulai dan berakhir, sehingga menukar dua sekretaris negara bagian atau dua presiden di dataTable tidak berpengaruh pada diagram.

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {

    var container = document.getElementById('example3.1');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'Position' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'President', 'George Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
      [ 'President', 'John Adams', new Date(1797, 2, 4), new Date(1801, 2, 4) ],
      [ 'President', 'Thomas Jefferson', new Date(1801, 2, 4), new Date(1809, 2, 4) ],
      [ 'Vice President', 'John Adams', new Date(1789, 3, 21), new Date(1797, 2, 4)],
      [ 'Vice President', 'Thomas Jefferson', new Date(1797, 2, 4), new Date(1801, 2, 4)],
      [ 'Vice President', 'Aaron Burr', new Date(1801, 2, 4), new Date(1805, 2, 4)],
      [ 'Vice President', 'George Clinton', new Date(1805, 2, 4), new Date(1812, 3, 20)],
      [ 'Secretary of State', 'John Jay', new Date(1789, 8, 25), new Date(1790, 2, 22)],
      [ 'Secretary of State', 'Thomas Jefferson', new Date(1790, 2, 22), new Date(1793, 11, 31)],
      [ 'Secretary of State', 'Edmund Randolph', new Date(1794, 0, 2), new Date(1795, 7, 20)],
      [ 'Secretary of State', 'Timothy Pickering', new Date(1795, 7, 20), new Date(1800, 4, 12)],
      [ 'Secretary of State', 'Charles Lee', new Date(1800, 4, 13), new Date(1800, 5, 5)],
      [ 'Secretary of State', 'John Marshall', new Date(1800, 5, 13), new Date(1801, 2, 4)],
      [ 'Secretary of State', 'Levi Lincoln', new Date(1801, 2, 5), new Date(1801, 4, 1)],
      [ 'Secretary of State', 'James Madison', new Date(1801, 4, 2), new Date(1809, 2, 3)]
    ]);

    chart.draw(dataTable);
  }
</script>

<div id="example3.1" style="height: 200px;"></div>

Menempatkan batang di satu baris

Tidak seperti paus, hanya boleh ada satu presiden AS dalam satu waktu, jadi jika kita melabeli semua baris sebagai "Presiden", linimasa akan menggabungkan tiga baris diagram pertama kita menjadi satu baris untuk presentasi yang lebih bersih. Anda dapat mengontrol perilaku ini dengan opsi groupByRowLabel.

Berikut adalah perilaku default:

Sekarang, mari kita tetapkan groupByRowLabel ke false dan bagi satu baris menjadi tiga:

Kode untuk menonaktifkan pengelompokan:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var container = document.getElementById('example4.2');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();

    dataTable.addColumn({ type: 'string', id: 'Role' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'President', 'George Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
      [ 'President', 'John Adams', new Date(1797, 2, 4), new Date(1801, 2, 4) ],
      [ 'President', 'Thomas Jefferson', new Date(1801, 2, 4), new Date(1809, 2, 4) ]]);

    var options = {
      timeline: { groupByRowLabel: false }
    };

    chart.draw(dataTable, options);
  }
</script>

<div id="example4.2" style="height: 200px;"></div>

Mengontrol warna

Secara default, Google Chart memilih warna yang dioptimalkan untuk estetika dan keterbacaan (termasuk pengguna dengan gangguan penglihatan). Anda dapat menyesuaikan perilaku default dengan opsi colorByRowLabel, singleColor, backgroundColor, dan colors.

Opsi colorByRowLabel mewarnai semua batang pada baris yang sama. Ini bisa menjadi pilihan yang baik saat ada kesenjangan di antara batang-batang Anda.

colorByRowLabel ditetapkan secara default ke false, sehingga di sini kita akan menggantinya dan menetapkannya ke true.

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {

    var container = document.getElementById('example5.1');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'Room' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'Magnolia Room', 'Beginning JavaScript',       new Date(0,0,0,12,0,0),  new Date(0,0,0,13,30,0) ],
      [ 'Magnolia Room', 'Intermediate JavaScript',    new Date(0,0,0,14,0,0),  new Date(0,0,0,15,30,0) ],
      [ 'Magnolia Room', 'Advanced JavaScript',        new Date(0,0,0,16,0,0),  new Date(0,0,0,17,30,0) ],
      [ 'Willow Room',   'Beginning Google Charts',    new Date(0,0,0,12,30,0), new Date(0,0,0,14,0,0) ],
      [ 'Willow Room',   'Intermediate Google Charts', new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Willow Room',   'Advanced Google Charts',     new Date(0,0,0,16,30,0), new Date(0,0,0,18,0,0) ]]);

    var options = {
      timeline: { colorByRowLabel: true }
    };

    chart.draw(dataTable, options);
  }

</script>

<div id="example5.1" style="height: 100px;"></div>

Jika Anda ingin semua batang berwarna sama, apa pun baris yang berada di atasnya, gunakan opsi singleColor:

Pada kode di bawah ini, singleColor ditetapkan ke nilai heksadesimal untuk mewarnai semua batang menjadi hijau muda:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {

    var container = document.getElementById('example5.2');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();

    dataTable.addColumn({ type: 'string', id: 'Room' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'Magnolia Room',  'CSS Fundamentals',    new Date(0,0,0,12,0,0),  new Date(0,0,0,14,0,0) ],
      [ 'Magnolia Room',  'Intro JavaScript',    new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Magnolia Room',  'Advanced JavaScript', new Date(0,0,0,16,30,0), new Date(0,0,0,19,0,0) ],
      [ 'Gladiolus Room', 'Intermediate Perl',   new Date(0,0,0,12,30,0), new Date(0,0,0,14,0,0) ],
      [ 'Gladiolus Room', 'Advanced Perl',       new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Gladiolus Room', 'Applied Perl',        new Date(0,0,0,16,30,0), new Date(0,0,0,18,0,0) ],
      [ 'Petunia Room',   'Google Charts',       new Date(0,0,0,12,30,0), new Date(0,0,0,14,0,0) ],
      [ 'Petunia Room',   'Closure',             new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Petunia Room',   'App Engine',          new Date(0,0,0,16,30,0), new Date(0,0,0,18,30,0) ]]);

    var options = {
      timeline: { singleColor: '#8d8' },
    };

    chart.draw(dataTable, options);
  }
</script>

<div id="example5.2" style="height: 150px;"></div>

Anda dapat mengontrol warna latar belakang baris dengan opsi backgroundColor:

backgroundColor ditetapkan sebagai nilai heksadesimal. Di sini, kami menyambungkannya dengan colorByRowLabel untuk menampilkan trek dalam konferensi:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var container = document.getElementById('example5.3');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'Room' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'Magnolia Room',  'CSS Fundamentals',    new Date(0,0,0,12,0,0),  new Date(0,0,0,14,0,0) ],
      [ 'Magnolia Room',  'Intro JavaScript',    new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Magnolia Room',  'Advanced JavaScript', new Date(0,0,0,16,30,0), new Date(0,0,0,19,0,0) ],
      [ 'Gladiolus Room', 'Intermediate Perl',   new Date(0,0,0,12,30,0), new Date(0,0,0,14,0,0) ],
      [ 'Gladiolus Room', 'Advanced Perl',       new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Gladiolus Room', 'Applied Perl',        new Date(0,0,0,16,30,0), new Date(0,0,0,18,0,0) ],
      [ 'Petunia Room',   'Google Charts',       new Date(0,0,0,12,30,0), new Date(0,0,0,14,0,0) ],
      [ 'Petunia Room',   'Closure',             new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Petunia Room',   'App Engine',          new Date(0,0,0,16,30,0), new Date(0,0,0,18,30,0) ]]);

    var options = {
      timeline: { colorByRowLabel: true },
      backgroundColor: '#ffd'
    };

    chart.draw(dataTable, options);
  }
</script>

<div id="example5.3" style="height: 150px;"></div>

Lalu, untuk menetapkan warna latar belakang ke alternatif atau tanpa perubahan oleh indeks baris, gunakan opsi alternatingRowStyle (aktif v51+):

<script src="https://www.gstatic.com/charts/loader.js"></script>

<script>
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var container = document.getElementById('example5.4');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'Room' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'Magnolia Room',  'CSS Fundamentals',    new Date(0,0,0,12,0,0),  new Date(0,0,0,14,0,0) ],
      [ 'Magnolia Room',  'Intro JavaScript',    new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Magnolia Room',  'Advanced JavaScript', new Date(0,0,0,16,30,0), new Date(0,0,0,19,0,0) ],
      [ 'Gladiolus Room', 'Intermediate Perl',   new Date(0,0,0,12,30,0), new Date(0,0,0,14,0,0) ],
      [ 'Gladiolus Room', 'Advanced Perl',       new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Gladiolus Room', 'Applied Perl',        new Date(0,0,0,16,30,0), new Date(0,0,0,18,0,0) ],
      [ 'Petunia Room',   'Google Charts',       new Date(0,0,0,12,30,0), new Date(0,0,0,14,0,0) ],
      [ 'Petunia Room',   'Closure',             new Date(0,0,0,14,30,0), new Date(0,0,0,16,0,0) ],
      [ 'Petunia Room',   'App Engine',          new Date(0,0,0,16,30,0), new Date(0,0,0,18,30,0) ]]);

    var options = {
      timeline: { colorByRowLabel: true },
      alternatingRowStyle: false
    };

    chart.draw(dataTable, options);
  }
</script>

<div id="example5.4" style="height: 150px;"></div>

Jika Anda ingin mengontrol warna batang individual, gunakan opsi colors:

colors menggunakan array nilai heksadesimal, yang diterapkan ke batang secara berurutan:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var container = document.getElementById('example5.5');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'Role' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'President', 'George Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
      [ 'President', 'John Adams', new Date(1797, 2, 4), new Date(1801, 2, 4) ],
      [ 'President', 'Thomas Jefferson', new Date(1801, 2, 4), new Date(1809, 2, 4) ]]);

    var options = {
      colors: ['#cbb69d', '#603913', '#c69c6e'],
    };

    chart.draw(dataTable, options);
  }

</script>

<div id="example5.5" style="height: 150px;"></div>

Jika diagram memerlukan lebih banyak warna daripada yang tercantum, diagram akan berperilaku seolah-olah singleColor ditetapkan ke warna pertama dalam daftar. (Hal ini berlaku untuk semua Google Chart, bukan hanya linimasa.)

Cara lain untuk mengontrol warna batang individual adalah dengan menggunakan kolom dengan peran gaya.

Kode untuk menambahkan dan mengisi kolom gaya:

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var container = document.getElementById('example5.6');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'Role' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'string', id: 'style', role: 'style' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'President', 'George Washington', '#cbb69d', new Date(1789, 3, 30), new Date(1797, 2, 4)],
      [ 'President', 'John Adams', '#603913', new Date(1797, 2, 4), new Date(1801, 2, 4) ],
      [ 'President', 'Thomas Jefferson', '#c69c6e', new Date(1801, 2, 4), new Date(1809, 2, 4) ]]);

    chart.draw(dataTable);
  }

</script>

<div id="example5.6" style="height: 150px;"></div>

Mengubah font

Anda dapat memilih jenis huruf dan font untuk label setiap baris dengan rowLabelStyle, dan untuk label pada setiap batang dengan barLabelStyle. Keduanya ditunjukkan di bawah.

Catatan: Pastikan untuk memilih jenis huruf yang dapat dirender oleh browser pengguna Anda.

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

<script type="text/javascript">
  google.charts.load("current", {packages:["timeline"]});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
    var container = document.getElementById('example6.1');
    var chart = new google.visualization.Timeline(container);
    var dataTable = new google.visualization.DataTable();
    dataTable.addColumn({ type: 'string', id: 'Role' });
    dataTable.addColumn({ type: 'string', id: 'Name' });
    dataTable.addColumn({ type: 'date', id: 'Start' });
    dataTable.addColumn({ type: 'date', id: 'End' });
    dataTable.addRows([
      [ 'Washington', 'George Washington', new Date(1789, 3, 30), new Date(1797, 2, 4) ],
      [ 'Adams', 'John Adams', new Date(1797, 2, 4), new Date(1801, 2, 4) ],
      [ 'Jefferson', 'Thomas Jefferson', new Date(1801, 2, 4), new Date(1809, 2, 4) ]]);

    var options = {
      colors: ['#cbb69d', '#603913', '#c69c6e'],
      timeline: { rowLabelStyle: {fontName: 'Helvetica', fontSize: 24, color: '#603913' },
                     barLabelStyle: { fontName: 'Garamond', fontSize: 14 } }
    };

    chart.draw(dataTable, options);
  }
</script>

<div id="example6.1" style="height: 200px;"></div>

Anda tidak dapat menetapkan warna teks barLabel.

Garis petak yang tumpang-tindih

Google Chart membuat sedikit penyesuaian pada endpoint batang untuk menghindari garis kisi linimasa. Untuk mencegah perilaku ini, tetapkan opsi avoidOverlappingGridLines ke false.

Untuk menggambarkan efeknya, berikut adalah dua contoh, yang pertama dengan garis petak yang tumpang tindih dan yang kedua tanpa.

Berikut adalah kode yang tumpang-tindih dengan garis kisi:

  <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

  <script type="text/javascript">
    google.charts.load("current", {packages:["timeline"]});
    google.charts.setOnLoadCallback(drawChart);
    function drawChart() {
      var container = document.getElementById('example7.1');
      var chart = new google.visualization.Timeline(container);
      var dataTable = new google.visualization.DataTable();
      dataTable.addColumn({ type: 'string', id: 'Room' });
      dataTable.addColumn({ type: 'string', id: 'Name' });
      dataTable.addColumn({ type: 'date', id: 'Start' });
      dataTable.addColumn({ type: 'date', id: 'End' });
      dataTable.addRows([
        [ 'Magnolia Room', 'Google Charts', new Date(0,0,0,14,0,0), new Date(0,0,0,15,0,0)],
        [ 'Magnolia Room', 'App Engine',    new Date(0,0,0,15,0,0), new Date(0,0,0,16,0,0)]]);

      var options = {
        timeline: { showRowLabels: false },
        avoidOverlappingGridLines: false
      };

      chart.draw(dataTable, options);
    }

  </script>

  <div id="example7.1" style="height: 200px;"></div>

Menyesuaikan tooltip

Anda dapat menyesuaikan hal yang dilihat pengguna saat mengarahkan kursor ke batang linimasa dengan menambahkan kolom tooltip ke tabel data lima kolom. Untuk memberikan tooltip non-default, setiap baris tabel data Anda harus memiliki lima kolom (label baris, label batang, tooltip, awal, dan akhir):

Mengarahkan kursor ke panel akan menampilkan tooltip dengan teks yang ditentukan di kolom ketiga. Pada diagram ini, kita harus menetapkan kolom kedua ke nilai contoh (di sini, null) sehingga tooltip dapat ada di kolom ketiga.

<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['timeline']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var container = document.getElementById('timeline-tooltip');
        var chart = new google.visualization.Timeline(container);
        var dataTable = new google.visualization.DataTable();

        dataTable.addColumn({ type: 'string', id: 'President' });
        dataTable.addColumn({ type: 'string', id: 'dummy bar label' });
        dataTable.addColumn({ type: 'string', role: 'tooltip' });
        dataTable.addColumn({ type: 'date', id: 'Start' });
        dataTable.addColumn({ type: 'date', id: 'End' });
        dataTable.addRows([
          [ 'Washington', null, 'George', new Date(1789, 3, 29), new Date(1797, 2, 3) ],
          [ 'Adams', null, 'John', new Date(1797, 2, 3),  new Date(1801, 2, 3) ],
          [ 'Jefferson', null, 'Thomas', new Date(1801, 2, 3),  new Date(1809, 2, 3) ]]);

        chart.draw(dataTable);
      }
    </script>
  </head>
  <body>
    <div id="timeline-tooltip" style="height: 180px;"></div>
  </body>
</html>

Memuat

Nama paket google.charts.load adalah timeline:

  google.charts.load("current", {packages: ["timeline"]});

Nama class visualisasinya adalah google.visualization.Timeline:

  var visualization = new google.visualization.Timeline(container);

Format data

Baris: Setiap baris dalam tabel mewakili panel linimasa.

Kolom:

  Kolom 0 Kolom 1 Kolom 2 Kolom 3 Kolom 4
Tujuan: Label baris Label batang (opsional) Tooltip (opsional) Mulai Akhiri
Jenis Data: string string string angka atau tanggal angka atau tanggal
Peran: data data tooltip data data

 

Opsi konfigurasi

Name
gayaBarisBerganti

Apakah diagram harus mengubah warna latar belakang dengan indeks baris (yaitu, warna latar belakang warna baris yang diindeks dengan warna yang lebih gelap). Jika salah, latar belakang diagram akan menjadi satu warna seragam. Jika benar (true), latar belakang diagram akan bergantian sesuai oleh indeks baris. (Catatan: aktif v51+)

Jenis: boolean
Default: true (benar):
hindariTumpangtindihGridLines

Apakah elemen tampilan (misalnya, batang dalam linimasa) harus mengaburkan garis kisi. Jika salah, garis petak dapat sepenuhnya tertutup oleh elemen tampilan. Jika true (benar), elemen tampilan dapat diubah agar garis petak tetap terlihat.

Jenis: boolean
Default: true (benar):
backgroundColor

Warna latar belakang untuk area utama diagram. Dapat berupa string warna HTML sederhana, misalnya: 'red' atau '#00cc00', atau objek dengan properti berikut.

Jenis: string atau objek
Default: 'putih'
warna

Warna yang akan digunakan untuk elemen diagram. Array string, dengan setiap elemen adalah string warna HTML, misalnya: colors:['red','#004411'].

Jenis: Array string
Default: warna default
aktifkanInteraktivitas

Apakah diagram menampilkan peristiwa berbasis pengguna atau bereaksi terhadap interaksi pengguna. Jika salah, diagram tidak akan menampilkan peristiwa 'pilih' atau peristiwa berbasis interaksi lainnya (tetapi akan menampilkan peristiwa siap atau error), dan tidak akan menampilkan pengarahan teks atau mengubah bergantung pada input pengguna.

Jenis: boolean
Default: true (benar):
NamaFont

Tampilan font default untuk semua teks dalam diagram. Anda dapat menggantinya menggunakan properti untuk elemen diagram tertentu.

Jenis: string
Default: 'chromebook'
ukuranFont

Ukuran font default, dalam piksel, dari semua teks dalam diagram. Anda dapat menggantinya menggunakan properti untuk elemen diagram tertentu.

Jenis: angka
Default: otomatis
forceIFrame

Menggambar diagram di dalam frame inline. (Perhatikan bahwa di IE8, opsi ini diabaikan; semua diagram IE8 digambar dalam i-frame.)

Jenis: boolean
Default: false (salah)
tinggi

Tinggi diagram, dalam piksel.

Jenis: angka
Default: tinggi elemen penampung
linimasa.barLabelStyle

Objek yang menentukan gaya teks label batang. Formatnya:

{fontName: <string>, fontSize: <string>}

Lihat juga fontName dan fontSize di tabel ini.

Objek Type:
Default: null
timeline.colorByRowLabel

Jika disetel ke benar (true), warna setiap batang di baris akan sama. Defaultnya adalah menggunakan satu warna per label batang.

Jenis: boolean
Default: false (salah)
linimasa.groupByRowLabel

Jika disetel ke salah (false), satu baris akan dibuat untuk setiap entri dataTable. Defaultnya adalah mengumpulkan batang dengan label baris yang sama ke dalam satu baris.

Jenis: boolean
Default: true (benar):
linimasa.rowLabelStyle

Objek yang menentukan gaya teks label baris. Formatnya:

{color: <string>, fontName: <string>, fontSize: <string>}

color dapat berupa string warna HTML apa pun, misalnya 'red' atau '#00cc00'. Lihat juga fontName dan fontSize dalam tabel ini.

Objek Type:
Default: null
timeline.showBarLabels

Jika ditetapkan ke false, label label tidak akan disertakan. Defaultnya adalah menampilkannya.

Jenis: boolean
Default: true (benar):
linimasa.showRowLabels

Jika ditetapkan ke false, label baris tidak akan disertakan. Defaultnya adalah menampilkannya.

Jenis: boolean
Default: true (benar):
linimasa.singleWarna

Mewarnai semua batang dengan cara yang sama. Ditentukan sebagai nilai heksadesimal (misalnya, '#8d8').

Jenis: string
Default: null
tooltip.isHtml

Setel ke false untuk menggunakan tooltip yang dirender SVG (bukan dirender HTML). Lihat Menyesuaikan Konten Tooltip untuk detail selengkapnya.

Catatan: penyesuaian konten tooltip HTML melalui peran data kolom tooltip tidak didukung oleh visualisasi Diagram Balon.

Jenis: boolean
Default: true (benar):
tooltip.pemicu

Interaksi pengguna yang menyebabkan tooltip ditampilkan:

  • 'fokus' - Tooltip akan ditampilkan saat pengguna mengarahkan kursor ke elemen.
  • 'tidak ada' - Tooltip tidak akan ditampilkan.
Jenis: string
Default: 'fokus'
lebar

Lebar diagram, dalam piksel.

Jenis: angka
Default: lebar elemen yang memuatnya

Metode

Metode
draw(data, options)

Menggambar diagram. Diagram menerima panggilan metode lebih lanjut hanya setelah peristiwa ready diaktifkan. Extended description

Jenis Hasil: tidak ada
clearChart()

Menghapus diagram, dan melepaskan semua resource yang dialokasikan.

Jenis Hasil: tidak ada
getSelection()

Menampilkan array entitas diagram yang dipilih. Entitas yang dapat dipilih adalah batang, entri legenda, dan kategori. Untuk diagram ini, hanya satu entitas yang dapat dipilih pada waktu tertentu. Extended description

Jenis Hasil: Array elemen pilihan

Acara

Name
error

Dipicu jika terjadi error saat mencoba merender diagram.

Properties: ID, pesan
onmouseover

Diaktifkan saat pengguna mengarahkan mouse ke entitas visual. Meneruskan kembali indeks baris dan kolom dari elemen tabel data yang sesuai. Batang berkorelasi dengan sel dalam tabel data, entri legenda ke kolom (indeks baris bernilai null), dan kategori ke baris (indeks kolom bernilai null).

Properti: baris, kolom
onmouseout

Diaktifkan saat pengguna mouse menjauh dari entitas visual. Meneruskan kembali indeks baris dan kolom dari elemen tabel data yang sesuai. Batang berkorelasi dengan sel dalam tabel data, entri legenda ke kolom (indeks baris bernilai null), dan kategori ke baris (indeks kolom bernilai null).

Properti: baris, kolom
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 draw, dan memanggilnya hanya setelah peristiwa diaktifkan.

Properti: tidak ada
select

Diaktifkan saat pengguna mengklik entitas visual. Untuk mempelajari apa yang telah dipilih, panggil getSelection().

Properti: tidak ada

Kebijakan data

Semua kode dan data diproses dan dirender di browser. Tidak ada data yang dikirim ke server mana pun.