Biểu đồ cho Lịch

Tổng quan

Lưu ý: JavaScript sẽ tính số tháng bắt đầu từ zero: tháng 1 là 0, tháng 2 là 1 và tháng 12 là 11. Nếu biểu đồ lịch của bạn có vẻ lệch một tháng, thì đây là lý do.

Biểu đồ lịch là một hình ảnh dùng để hiển thị hoạt động trong một khoảng thời gian dài, chẳng hạn như các tháng hoặc năm. Bạn chỉ nên sử dụng những thuộc tính này khi muốn minh hoạ sự thay đổi của một số lượng dựa vào ngày trong tuần hoặc cách xu hướng số lượng đó theo thời gian.

Biểu đồ lịch có thể đang được sửa đổi đáng kể trong các bản phát hành biểu đồ của Google trong tương lai.

Biểu đồ lịch được hiển thị trong trình duyệt bằng cách sử dụng SVG hoặc VML, tùy điều kiện nào phù hợp với trình duyệt của người dùng. Giống như tất cả biểu đồ của Google, biểu đồ lịch hiển thị chú giải công cụ khi người dùng di chuột qua dữ liệu. Và khoản tín dụng mà bạn đến hạn: biểu đồ lịch của chúng tôi được lấy cảm hứng từ hình ảnh minh hoạ lịch D3.

Ví dụ đơn giản

Giả sử chúng tôi muốn cho khán giả thấy sự thay đổi về số người tham dự của một đội thể thao trong suốt mùa giải. Thông qua biểu đồ lịch, chúng tôi có thể sử dụng độ sáng để cho biết các giá trị và giúp người dùng thấy được xu hướng trong nháy mắt:

Bạn có thể di chuột qua từng ngày để xem các giá trị dữ liệu cơ bản.

Để tạo biểu đồ lịch, hãy tải gói calendar, rồi tạo hai cột, một cột cho ngày và một cột cho các giá trị. (Cột thứ ba tuỳ chọn để tạo kiểu tuỳ chỉnh sẽ có trong bản phát hành Google Chart trong tương lai.)

Sau đó, hãy điền vào các cặp ngày-giá trị, như được hiển thị bên dưới.

<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>

Ngày

Mỗi ô vuông trong biểu đồ lịch biểu thị một ngày. Hiện tại, bạn không thể tuỳ chỉnh màu của các ô dữ liệu, mặc dù màu này sẽ thay đổi trong bản phát hành tiếp theo của Google Chart.

Nếu tất cả giá trị dữ liệu đều dương, thì các màu sẽ nằm trong khoảng từ trắng đến xanh, trong đó màu xanh lam đậm nhất thể hiện các giá trị cao nhất. Nếu có giá trị dữ liệu âm, thì các giá trị này sẽ xuất hiện màu cam, như minh hoạ dưới đây.

Mã cho lịch này tương tự như mã đầu tiên, ngoại trừ việc các hàng có dạng như sau:

          [ 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 ],

Bạn có thể thay đổi kích thước của các ngày ("ô") bằng tùy chọn calendar.cellSize:

Ở đây, chúng tôi đã thay đổi calendar.cellSize thành 10, rút gọn số ngày và do đó, toàn bộ biểu đồ.

       var options = {
         title: 'Red Sox Attendance',
         calendar: { cellSize: 10 },
       };

Những ngày không có giá trị dữ liệu có thể được tuỳ chỉnh bằng tuỳ chọn noDataPattern:

Ở đây, chúng ta đặt color thành màu xanh dương nhạt và backgroundColor thành màu đậm hơn một chút:

       var options = {
         title: "Red Sox Attendance",
         height: 350,
         noDataPattern: {
           backgroundColor: '#76a7fa',
           color: '#a0c3ff'
         }
       };

Bạn có thể kiểm soát màu đường viền, chiều rộng đường viền và độ mờ của ô bằng calendar.cellColor:

Bạn cần cẩn thận chọn màu nét vẽ sẽ được phân biệt với monthOutlineColor hoặc để chọn độ mờ thấp. Dưới đây là các tùy chọn cho biểu đồ ở trên:

  var options = {
    title: 'Red Sox Attendance',
    height: 350,
    calendar: {
      cellColor: {
        stroke: '#76a7fa',
        strokeOpacity: 0.5,
        strokeWidth: 1,
      }
    }
  };

Nếu bạn tập trung vào một ngày ở biểu đồ trên, thì đường viền sẽ làm nổi bật bằng màu đỏ. Bạn có thể kiểm soát hành vi đó bằng các tuỳ chọn calendar.focusedCellColor:

  var options = {
    title: 'Red Sox Attendance',
    height: 350,
    calendar: {
      focusedCellColor: {
        stroke: '#d3362d',
        strokeOpacity: 1,
        strokeWidth: 1,
      }
    }
  };

Tuần

Theo mặc định, các ngày trong tuần được gắn nhãn bằng các chữ cái đầu tiên của Chủ Nhật đến hết thứ Bảy. Bạn không thể thay đổi thứ tự của các ngày, nhưng có thể thay đổi các chữ cái được sử dụng cùng với tùy chọn calendar.daysOfWeek. Ngoài ra, bạn có thể kiểm soát khoảng đệm giữa các ngày trong tuần và biểu đồ bằng calendar.dayOfWeekRightSpace, đồng thời có thể tuỳ chỉnh kiểu văn bản bằng calendar.dayOfWeekLabel:

Ở đây, chúng tôi thay đổi phông chữ của các nhãn tuần, đặt trong khoảng đệm có 10 pixel giữa các nhãn và dữ liệu biểu đồ, và bắt đầu các tuần vào thứ Hai.

  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',
    }
  };

Tháng

Theo mặc định, tháng được xác định bằng các đường màu xám đậm. Bạn có thể sử dụng tuỳ chọn calendar.monthOutlineColor để kiểm soát đường viền, calendar.monthLabel để tuỳ chỉnh phông chữ nhãn và calendar.underMonthSpace để điều chỉnh khoảng đệm nhãn:

Chúng tôi đặt phông chữ của nhãn thành in nghiêng đậm 12pt trên Thời đại La Mã, đặt các đường viền thành cùng một màu và đặt một khoảng đệm 16 pixel. Các đường viền không sử dụng trong tháng được đặt thành màu nhạt hơn của cùng một màu sắc.

  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,
    }
  };

Năm

Các năm trong biểu đồ lịch luôn nằm ở cạnh trái của biểu đồ và có thể được tùy chỉnh bằng calendar.yearLabelcalendar.underYearSpace:

Chúng tôi đặt phông chữ năm thành độ nghiêng màu xanh đậm 32pt cho Thời La Mã – La Mã và thêm mười pixel giữa các nhãn năm và cuối biểu đồ:

  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
      }
    }
  };

Đang tải

Tên gói google.charts.load"calendar":

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

Tên lớp của hình ảnh là google.visualization.Calendar:

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

Định dạng dữ liệu

Hàng: Mỗi hàng trong bảng biểu thị một ngày.

Cột:

  Cột 0 Cột 1 ... Cột N (không bắt buộc)
Mục đích: Ngày Giá trị ... Vai trò không bắt buộc
Loại dữ liệu: ngày, ngày giờ hoặc thời gian trong ngày number ...
Vai trò: miền data ...
Các vai trò cột không bắt buộc:

None (Không có)

None (Không có)

...

 

Các lựa chọn về cấu hình

Tên
calendar.cellColor

Tuỳ chọn calendar.cellColor cho phép bạn tuỳ chỉnh đường viền của hình vuông ngày theo lịch:

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.
    }
  }
};
      
Loại: đối tượng
Mặc định: { stroke: '#fff', strokeOpacity: 1, strokeWidth: 1 }
calendar.cellKích thước

Kích thước của hình vuông ngày theo lịch:

var options = { calendar: { cellSize: 10 } };
      
Loại: số nguyên
Mặc định: 16
calendar.dayOfWeekLabel

Kiểm soát kiểu phông chữ của nhãn tuần ở đầu biểu đồ:

var options = {
  calendar: {
    dayOfWeekLabel: {
      fontName: 'Times-Roman',
      fontSize: 12,
      color: 'black',
      bold: false,
      italic: false
    }
  }
};
      
Loại: đối tượng
Mặc định: { fontName: 'sans-serif', color: '#888', bold: false, italic: false }
calendar.dayOfWeekRightSpace

Khoảng cách giữa cạnh phải của nhãn tuần và cạnh trái của hình vuông ngày của biểu đồ.

Loại: số nguyên
Mặc định: 4
calendar.daysOfWeek

Nhãn gồm một chữ cái để sử dụng cho Chủ Nhật đến hết thứ Bảy.

Loại: chuỗi
Mặc định: 'SMTWTFS'
calendar.focusCellColor

Khi người dùng đặt tiêu điểm (giả sử di chuột) trên một hình vuông trong ngày, các biểu đồ trên lịch sẽ làm nổi bật hình vuông.

var options = {
  calendar:
    focusedCellColor: {
      stroke: 'red',
      strokeOpacity: 0.8,
      strokeWidth: 3
    }
  }
};
      
Loại: đối tượng
Mặc định: { stroke: '#000', strokeOpacity: 1, strokeWidth: 2 }
calendar.monthLabel

Tạo kiểu cho nhãn tháng, ví dụ:

      var options = {
        calendar: {
          monthLabel: {
            fontName: 'Times-Roman',
            fontSize: 16,
            color: 'green',
            bold: true,
            italic: false
          }
        }
      };
      
Loại: đối tượng
Mặc định: { fontName: 'sans-serif', color: '#888', bold: false, italic: false }
calendar.monthOutlineColor

Tháng có giá trị dữ liệu được phân định với người khác bằng đường viền theo kiểu này.

var options = {
  calendar: {
    monthOutlineColor: {
      stroke: 'blue',
      strokeOpacity: 0.8,
      strokeWidth: 2
    }
  }
};
      
(Xem thêm calendar.unusedMonthOutlineColor.)
Loại: đối tượng
Mặc định: { stroke: '#000', strokeOpacity: 1, strokeWidth: 1 }
calendar.underMonthSpace

Số pixel giữa đáy của nhãn tháng và đầu hình vuông ngày:

var options = { calendar: { underMonthSpace: 12 } };
Loại: số nguyên
Mặc định: 6
calendar.underYearKhông gian

Số pixel giữa nhãn năm dưới cùng và đáy của biểu đồ:

var options = { calendar: { underYearSpace: 2 } };
Loại: số nguyên
Mặc định: 0
calendar.unusedMonthOutlineColor

Tháng không có giá trị dữ liệu được phân định với người khác bằng cách sử dụng đường viền theo kiểu này.

var options = {
  calendar: {
    unusedMonthOutlineColor: {
      stroke: 'yellow',
      strokeOpacity: 0.8,
      strokeWidth: 2
    }
  }
};
      
(Xem thêm calendar.monthOutlineColor.)
Loại: đối tượng
Mặc định: { stroke: '#c9c9c9', strokeOpacity: 1, strokeWidth: 1 }
Trục màu

Một đối tượng chỉ định mối liên kết giữa các giá trị và màu của cột màu hoặc thang độ dốc. Để chỉ định thuộc tính của đối tượng này, bạn có thể sử dụng ký hiệu cố định đối tượng, như minh họa dưới đây:

 {minValue: 0,  colors: ['#FF0000', '#00FF00']}
Loại: đối tượng
Mặc định: rỗng
colorAxis.colors

Màu sắc để chỉ định cho các giá trị trong hình ảnh trực quan. Một mảng chuỗi, trong đó mỗi phần tử là một chuỗi màu HTML, ví dụ: colorAxis: {colors:['red','#004411']}. Bạn phải có ít nhất hai giá trị; độ dốc sẽ bao gồm tất cả giá trị của bạn, cộng với giá trị trung gian đã tính toán, với màu đầu tiên là giá trị nhỏ nhất và màu cuối cùng là cao nhất.

Loại: mảng chuỗi màu
Mặc định: rỗng
colorAxis.maxValue

Nếu có, hãy chỉ định một giá trị tối đa cho dữ liệu màu của biểu đồ. Các giá trị dữ liệu màu của giá trị này trở lên sẽ hiển thị dưới dạng màu cuối cùng trong dải ô colorAxis.colors.

Loại: số
Mặc định: Giá trị tối đa của cột màu trong dữ liệu biểu đồ
colorAxis.minValue

Nếu có, hãy chỉ định một giá trị tối thiểu cho dữ liệu màu của biểu đồ. Các giá trị dữ liệu màu của giá trị này trở xuống sẽ hiển thị dưới dạng màu đầu tiên trong dải ô colorAxis.colors.

Loại: số
Mặc định: Giá trị tối thiểu của cột màu trong dữ liệu biểu đồ
colorAxis.values

Nếu có, hãy kiểm soát cách các giá trị liên kết với màu sắc. Mỗi giá trị được liên kết với một màu tương ứng trong mảng colorAxis.colors. Các giá trị này áp dụng cho dữ liệu màu của biểu đồ. Màu được thực hiện theo độ dốc của các giá trị được chỉ định ở đây. Việc không chỉ định giá trị cho tuỳ chọn này tương đương với việc chỉ định [minValue, maxValue].

Loại: mảng số
Mặc định: rỗng
forceIFrame

Vẽ biểu đồ bên trong một khung cùng dòng. (Xin lưu ý rằng trên IE8, tuỳ chọn này sẽ bị bỏ qua; tất cả biểu đồ IE8 đều được vẽ trong khung i.)

Loại: Boolean
Mặc định: sai
độ cao

Chiều cao của biểu đồ, tính bằng pixel.

Loại: số
Mặc định: chiều cao của phần tử chứa
Không có mẫu dữ liệu

Biểu đồ lịch sử dụng mẫu đường chéo sọc để biểu thị rằng không có dữ liệu cho một ngày cụ thể. Sử dụng các tùy chọn noDataPattern.backgroundColornoDataPattern.color để ghi đè các giá trị mặc định của thang màu xám, ví dụ:

noDataPattern: {
  backgroundColor: '#76a7fa',
  color: '#a0c3ff'
}
      
Loại: đối tượng
Mặc định: rỗng
chú giải công cụ.isHtml

Hãy đặt thành false để sử dụng chú giải công cụ hiển thị SVG (thay vì HTML hiển thị). Xem phần Tuỳ chỉnh nội dung cho chú giải công cụ để biết thêm chi tiết.

Lưu ý: Tính năng tuỳ chỉnh nội dung của chú giải công cụ HTML thông qua vai trò dữ liệu trong cột chú giải công cụ không được hỗ trợ bởi hình ảnh Biểu đồ hình trònBiểu đồ bong bóng.

Loại: Boolean
Mặc định: true
chiều rộng

Chiều rộng của biểu đồ, tính bằng pixel.

Loại: số
Mặc định: chiều rộng của phần tử chứa

Phương thức

Phương thức
draw(data, options)

Vẽ biểu đồ. Biểu đồ chỉ chấp nhận các lệnh gọi phương thức khác sau khi sự kiện ready được kích hoạt. Extended description

Loại dữ liệu trả về: không có
getBoundingBox(id)

Trả về một đối tượng chứa thành phần bên trái, trên cùng, chiều rộng và chiều cao của phần tử biểu đồ id. Định dạng cho id chưa được ghi lại (đây là giá trị trả về của trình xử lý sự kiện) nhưng dưới đây là một số ví dụ:

var cli = chart.getChartLayoutInterface();

Chiều cao vùng biểu đồ
cli.getBoundingBox('chartarea').height
Chiều rộng của thanh thứ ba trong chuỗi biểu đồ thanh hoặc cột đầu tiên
cli.getBoundingBox('bar#0#2').width
Hộp giới hạn của nêm thứ năm của biểu đồ hình tròn
cli.getBoundingBox('slice#4')
Hộp ranh giới dữ liệu biểu đồ của biểu đồ dọc (ví dụ: cột):
cli.getBoundingBox('vAxis#0#gridline')
Hộp giới hạn dữ liệu biểu đồ của biểu đồ ngang (ví dụ: thanh):
cli.getBoundingBox('hAxis#0#gridline')

Giá trị tương ứng với vùng chứa của biểu đồ. Gọi hàm này sau khi biểu đồ được vẽ.

Loại dữ liệu trả về: đối tượng
getSelection()

Trả về một mảng các thực thể biểu đồ đã chọn. Các thực thể có thể chọn là thanh, mục nhập chú giải và danh mục. Thanh tương ứng với một ô trong bảng dữ liệu, mục nhập chú giải cho một cột (chỉ mục hàng bị rỗng) và một danh mục cho một hàng (chỉ mục cột rỗng. Đối với biểu đồ này, chỉ có thể chọn một thực thể vào bất kỳ thời điểm nào. Extended description .

Loại dữ liệu trả về: Một mảng các phần tử lựa chọn
setSelection()

Chọn các thực thể biểu đồ đã chỉ định. Hủy mọi lựa chọn trước đó. Các thực thể có thể chọn là thanh, mục nhập chú giải và danh mục. Thanh tương ứng với một ô trong bảng dữ liệu, mục nhập chú giải cho một cột (chỉ mục hàng bị rỗng) và một danh mục cho một hàng (chỉ mục cột rỗng. Đối với biểu đồ này, mỗi lần bạn chỉ có thể chọn một thực thể. Extended description .

Loại dữ liệu trả về: không có
clearChart()

Xoá biểu đồ và giải phóng tất cả tài nguyên được phân bổ của biểu đồ.

Loại dữ liệu trả về: không có

Sự kiện

Tên
error

Được kích hoạt khi xảy ra lỗi khi cố gắng hiển thị biểu đồ.

Thuộc tính: mã nhận dạng, thông báo
onmouseover

Được kích hoạt khi người dùng di chuột qua một thực thể hình ảnh. Truyền lại chỉ mục hàng và giá trị ngày của thực thể. Nếu thực thể không có phần tử bảng dữ liệu nào, thì giá trị được trả về cho chỉ mục hàng sẽ là undefined.

Cơ sở lưu trú: hàng, ngày
onmouseout

Được kích hoạt khi người dùng di chuột khỏi một thực thể hình ảnh. Truyền lại chỉ mục hàng và giá trị ngày của thực thể. Nếu thực thể không có phần tử bảng dữ liệu nào, thì giá trị được trả về cho chỉ mục hàng sẽ là undefined.

Hàng Ngày của cơ sở lưu trú
ready

Biểu đồ đã sẵn sàng cho các lệnh gọi phương thức bên ngoài. Nếu muốn tương tác với biểu đồ và gọi các phương thức sau khi vẽ, bạn nên thiết lập trình nghe cho sự kiện này trước khi bạn gọi phương thức draw và chỉ gọi các phương thức này sau khi sự kiện được kích hoạt.

Thuộc tính: không có
select

Được kích hoạt khi người dùng nhấp vào một thực thể hình ảnh. Để tìm hiểu những mục bạn đã chọn, hãy gọi getSelection().

Thuộc tính: không có

Chính sách dữ liệu

Toàn bộ mã và dữ liệu đều được xử lý và kết xuất trong trình duyệt. Dữ liệu không được gửi đến bất kỳ máy chủ nào.