注解图表

概览

注释图表是支持注释的交互式时间序列折线图。请注意,带注释的时间轴现在会自动使用注释图表。

混淆提醒:目前,Google 注释图表与其他 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':['annotationchart']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = new google.visualization.DataTable();
        data.addColumn('date', 'Date');
        data.addColumn('number', 'Kepler-22b mission');
        data.addColumn('string', 'Kepler title');
        data.addColumn('string', 'Kepler text');
        data.addColumn('number', 'Gliese 163 mission');
        data.addColumn('string', 'Gliese title');
        data.addColumn('string', 'Gliese text');
        data.addRows([
          [new Date(2314, 2, 15), 12400, undefined, undefined,
                                  10645, undefined, undefined],
          [new Date(2314, 2, 16), 24045, 'Lalibertines', 'First encounter',
                                  12374, undefined, undefined],
          [new Date(2314, 2, 17), 35022, 'Lalibertines', 'They are very tall',
                                  15766, 'Gallantors', 'First Encounter'],
          [new Date(2314, 2, 18), 12284, 'Lalibertines', 'Attack on our crew!',
                                  34334, 'Gallantors', 'Statement of shared principles'],
          [new Date(2314, 2, 19), 8476, 'Lalibertines', 'Heavy casualties',
                                  66467, 'Gallantors', 'Mysteries revealed'],
          [new Date(2314, 2, 20), 0, 'Lalibertines', 'All crew lost',
                                  79463, 'Gallantors', 'Omniscience achieved']
        ]);

        var chart = new google.visualization.AnnotationChart(document.getElementById('chart_div'));

        var options = {
          displayAnnotations: true
        };

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

  <body>
    <div id='chart_div' style='width: 900px; height: 600px;'></div>
  </body>
</html>

正在加载

google.charts.load 软件包名称为 "annotationchart"

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

该可视化图表的类名称为 google.visualization.AnnotationChart

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

数据格式

您可以在图表上显示一条或多条折线。每一行代表图表上的一个 X 位置,即特定时间;每一行由一组一到三列来描述。

  • 第一列的类型是 datedatetime,用于指定图表上该点的 X 值。如果此列的类型是 date(而非 datetime),则 X 轴上的最小时间分辨率为一天。
  • 然后,每个数据行由一组额外的 1 到 3 个列进行描述,具体如下所述:
    • Y 值 - [必需,数字] 每集中的第一列描述的是第一列对应的时间相应行的值。列标签将作为该线条的标题显示在图表上。
    • 注释标题 - [可选,字符串] 如果值列后面是字符串列,并且 displayAnnotations 选项为 true,则此列包含描述此时间点的短标题。例如,如果此线条表示巴西的温度,而这个点是一个非常大的数字,则标题可以是“有史以来最热的一天”。
    • 注释文本 - [可选字符串] 如果此系列具有第二个字符串列,则单元格值将用作此点的附加描述性文本。您必须将选项 displayAnnotations 设置为 true 才能使用此列。如果将 allowHtml 设为 true,则可以使用 HTML 标记;这基本上没有大小限制,但请注意,过长的条目可能会溢出显示部分。 即使您有针对这一点的注解标题列,也不需要有此列。图表不使用列标签。例如,如果这是记录点上最热的一天,您可以这样说:“最近一天的气温下降了 10 度!”。

配置选项

名称
allowHtml

如果设置为 true,任何包含 HTML 标记的注释文本都将呈现为 HTML。

类型:布尔值
默认值:false
allValuesSuffix

要为图例和纵轴中刻度线标签中的所有值添加的后缀。

类型:字符串
默认:none
annotationsWidth

在整个图表区域内,注释区域的宽度(以百分比表示)。必须是 5-80 之间的数字。

类型:数字
默认值:25
颜色

用于图表线条和标签的颜色。字符串数组。每个元素都是一个采用有效 HTML 颜色格式的字符串。例如,“red”或“#00cc00”。

类型:字符串数组
默认:默认颜色
dateFormat

右上角用于显示日期信息的格式。此字段的格式由 java SimpleDateFormat 类

类型:字符串
默认值:可以是“MMMM dd, yyyy”或“HH:mm MMMM dd, yyyy”,具体取决于第一列的类型(分别为日期或日期时间)。
displayAnnotations

如果设置为 false,图表将隐藏注释表格,并且注释和 AnnotationText 将不可见(如果数据中没有注释,则无论此选项为何,注释表都不会显示)。将此选项设置为 true 时,可以在每个数字列后添加两个可选的注释字符串列,一个用于注释标题,另一个用于注释文本。

类型:布尔值
默认值:true
displayAnnotationsFilter

如果此政策设为 true,图表将显示一个用于过滤注释的过滤器控件。如果存在许多注释,请使用此选项。

类型:布尔值
默认值:false
displayDateBarSeparator

是否在序列值和图例中的日期之间显示小条形分隔符 ( | ),其中 true 表示是。

类型:布尔值
默认值:true
displayExactValues

是否在图表顶部显示经过舍入取整的值以节省空间;false 表示可以。例如,如果设置为 false,56123.45 可能会显示为 56.12k。

类型:布尔值
默认值:false
displayLegendDots

是否在图例文本中的值旁边显示点,其中 true 表示是。

类型:布尔值
默认值:true
displayLegendValues

是否在图例中显示突出显示的值,其中 true 表示是。

类型:布尔值
默认值:true
displayRangeSelector

是否显示缩放范围选择区域(图表底部的区域),其中 false 表示否。

缩放选择器中的轮廓是图表中第一个系列的对数缩放版本,缩放以适应缩放选择器的高度。

类型:布尔值
默认值:true
displayZoomButtons

是否显示缩放按钮(“1d 5d 1m”等),其中 false 表示否。

类型:布尔值
默认值:true
fill

一个介于 0—100(含)之间的数字,用于指定折线图中每条线下方的填充 Alpha 值。100 表示 100% 不透明,0 表示完全不填充。填充颜色与其上方的线条颜色相同。

类型:数字
默认值:0
legendPosition

是将彩色图例与缩放按钮和日期放在同一行(“sameRow”)上,还是放在新行(“newRow”)。

类型:字符串
默认:“sameRow”
max

要在 Y 轴上显示的最大值。如果最大数据点数量超过此值,系统将忽略此设置,并调整图表,使其在最大数据点上方显示下一个主要刻度标记。此值优先于由 scaleType 确定的 Y 轴最大值。

这类似于核心图表中的 maxValue

类型:数字
默认:自动
分钟

要在 Y 轴上显示的最小值。如果最小数据点小于此值,则系统将忽略此设置,并调整图表,在最小数据点下方显示下一个主要刻度标记。此值优先于由 scaleType 确定的 Y 轴最小值。

这类似于核心图表中的 minValue

类型:数字
默认:自动
numberFormats

指定用于设置图表顶部值的格式的数字格式模式。

模式应采用 java DecimalFormat 类

  • 如果未指定,则使用默认格式模式。
  • 如果指定了单个字符串模式,则该模式将用于所有值。
  • 如果指定了映射,则键是序列的(从零开始)索引,值是用于格式化指定系列的模式。

    您无需为图表上的每个系列都添加格式;任何未指定的系列都将使用默认格式。

如果指定此选项,系统会忽略 displayExactValues 选项。

类型:字符串或“数字:字符串”对的映射
默认:自动
scaleColumns

指定要在图表的 Y 轴刻度线上显示的值。默认设置是右侧只有一个缩放,这适用于两个系列;但您可以将图表的不同侧缩放为不同的系列值。

此选项接受一个由 0 到 3 个数字组成的数组,用于指定要用作缩放值的序列(从零开始)的索引。这些值的显示位置取决于您在数组中包含多少个值:

  • 如果您指定空数组,则图表不会在刻度线旁边显示 Y 值。
  • 如果您指定一个值,所指示系列的刻度将仅显示在图表的右侧。
  • 如果您指定了两个值,则系统会在图表右侧添加第二个系列的刻度。
  • 如果您指定了三个值,则系统会在图表中间添加第三个系列的刻度。
  • 数组中第三个值之后的所有值都将被忽略。

显示多个缩放比例时,建议将 scaleType 选项设置为“allfixed”或“allmaximized”。

类型:数字数组
默认:自动
scaleFormat

用于轴刻度线标签的数字格式。默认值 '#' 显示为整数。

类型:字符串
默认值:“#”
scaleType

设置 Y 轴上显示的最大值和最小值。您可以使用以下选项:

  • 'maximized' - Y 轴将跨越数据系列的最小值和最大值。如果您有多个系列,请使用 allmaximized。
  • 'fixed' [默认] - Y 轴会有所不同,具体取决于数据值:
    • 如果所有值均 >=0,则 Y 轴的范围将介于 0 到最大数据值之间。
    • 如果所有值均 <=0,则 Y 轴的范围将介于 0 到最小数据值之间。
    • 如果值同时为正值和负值,则 Y 轴的范围将从系列最大值到系列最小值。
      对于多个系列,请使用“allfixed”。
  • “allmaximized”- 与“maximized”相同,但在显示多个比例时使用。两个图表将在同一刻度内最大化,这意味着其中一个图表在 Y 轴上的表示不正确,但将鼠标悬停在每个数据系列上将显示其真实值。
  • “allfixed”- 与“fixed”相同,但在显示多个比例时使用。此设置会根据其适用的系列将每个刻度调整为(与 scaleColumns 结合使用)。

如果您指定最小值和/或最大值,它们的优先级将高于由缩放类型确定的最小值和最大值。

类型:字符串
默认:“fixed”
桌子

包含与注解表相关的选项。如需指定此对象的属性,您可以使用对象字面量表示法:

var options: {
  table: {
    sortAscending: true,
    sortColumn: 1
  }
};
      
类型:object
默认值:null
table.sortAscending

如果设置为 true,则会反转注释表的顺序并以升序显示它们。

类型:布尔值
默认值:false
table.sortColumn

将对注释进行排序的注释表的列索引。对于注释标签列,索引必须为 0;对于注释文本列,索引必须为 1。

类型:数字
默认值:0
厚度

一个 0—10(含)之间的数字,用于指定线条的粗细,其中 0 是最细的线。

类型:数字
默认值:0
zoomEndTime

设置所选缩放范围的结束日期/时间。

类型:日期
默认:none
zoomStartTime

设置所选缩放范围的开始日期/时间。

类型:日期
默认:none

方法

方法
clearChart()

清除图表,并释放为其分配的所有资源。

Return Type(返回类型):none
draw(data, options, state)

绘制图表。

Return Type(返回类型):none
getContainer()

检索包含注释图表的容器元素的句柄。

返回类型:DOM 元素的句柄
getSelection()

标准的 getSelection() 实现。所选元素是单元格元素。 用户一次只能选择一个单元格。

返回类型:选择元素数组
getVisibleChartRange()

返回一个具有 startend 属性的对象,其中每个属性都是一个 Date 对象,表示当前选择的时间。

返回值类型:具有 startend 属性的对象
hideDataColumns(columnIndexes)

在图表中隐藏指定的数据系列。接受一个参数,该参数可以是数字或数字数组,其中 0 表示第一个数据系列,依此类推。

Return Type(返回类型):none
setVisibleChartRange(start, end)

将可见范围(缩放)设为指定范围。接受两个类型为 Date 的参数,分别表示所需所选可见范围的第一次和最后一次时间。将 start 设置为 null 可包含从最早日期到 end 的所有内容;将 end 设置为 null 可包含从 start 到最后日期的所有内容。

Return Type(返回类型):none
showDataColumns(columnIndexes)

显示图表中指定的数据系列(使用 hideDataColumns 方法隐藏后)。接受一个参数,该参数可以是数字或数字数组,其中 0 表示第一个数据系列,依此类推。

Return Type(返回类型):none

事件

名称
rangechange

在用户更改范围滑块时触发。新的范围端点将提供 event['start']event['end'] 形式:

google.visualization.events.addListener(chart, 'rangechange', rangechange_handler);

function rangechange_handler(e) {
  console.log('You changed the range to ', e['start'], ' and ', e['end']);
}
属性:start、end
ready

该图表已准备好进行外部方法调用。如果您想与图表交互并在绘制图表后调用方法,则应在调用 draw 方法之前为该事件设置监听器,并仅在事件触发后调用监听器。

属性:无
select

当用户点击视觉实体时触发。如需了解已选择的内容,请调用 getSelection()

属性:无

数据政策

所有代码和数据都会在浏览器中处理并呈现。系统不会向任何服务器发送任何数据。