可视化数据网页开发Google Charts(八):注释图表

Annotation Chart

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

<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: 500px;'></div>
  </body>
</html>

加载注释图表库

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

初始化图表

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

数据格式

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

第一列的类型是date或datetime,它指定图表上该点的X值。如果这一列的类型是date(而不是datetime),那么X轴上最小的时间分辨率将是一天。
然后,每条数据线由一至三列组成,如下所述:
Y值- [Required, Number]每个集合的第一列描述了从第一列开始对应时间行的值。列标签作为该线的标题显示在图表上。
注释标题-[Required,String]如果字符串列位于value列之后,且displayAnnotations选项为true,则此列拥有一个描述此点的短标题。例如,如果这条线代表巴西的温度,而这一点是一个非常高的数字,标题可能是“有记录以来最热的一天”。
注释文本—[Optional string]如果本系列中存在第二个字符串列,则单元格值将用作该点的附加描述性文本。要使用此列,必须将选项displayAnnotations设置为true。如果将allowHtml设置为true,可以使用HTML标记;基本上没有大小限制,但是请注意,过长的条目可能会溢出display部分。即使此时有一个annotation title列,也不需要这个列。图表不使用列标签。例如,如果这是有记录以来最热的一天,你可能会说“最近的一天比今天冷10度!”

Methods

Method
clearChart()

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

Return Type: none

draw(data, options,state)

绘制图表。

Return Type: none

getContainer()

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

Return Type: Handle to a DOM element

getSelection()

标准getSelection()实现。所选元素是单元格元素。用户一次只能选择一个单元格。Return Type: Array of selection elements

getVisibleChartRange()

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

Return Type: An object with start and end properties

hideDataColumns(columnIndexes)

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

Return Type: none

setVisibleChartRange(startend)

将可见范围(缩放)设置为指定范围。接受Date类型的两个参数,它们表示所需选择的可视范围的第一次和最后一次。将start设置为null,以包含从最早日期到结束的所有内容;将end设置为null,以包含从开始到最后一个日期的所有内容。

Return Type: none

showDataColumns(columnIndexes)

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

Return Type: none

Events

Name
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']);
}

Properties: start, end

ready

图表已经为外部方法调用做好了准备。如果您希望与图表交互,并在绘制图表后调用方法,则应该在调用draw方法之前为该事件设置一个侦听器,并仅在事件触发后调用它们。

Properties: none

select

当用户单击一个可视实体时触发。要了解所选择的内容,请调用getSelection()。

Properties: none

Configuration Options

Name  
allowHtml

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

Type: boolean

Default: false

allValuesSuffix

要添加到图例中的所有值的后缀,并在垂直轴上的标记标签。

Type: string

Default: none

annotationsWidth

注释区域的宽度(以百分比为单位),超出整个图表区域。必须是5-80范围内的数字。

Type: number

Default: 25

colors

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

Type: Array of strings

Default: Default colors

dateFormat

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

Type: string

Default: Either 'MMMM dd, yyyy' or 'HH:mm MMMM dd, yyyy', depending on the type of the first column (date, or datetime, respectively).

displayAnnotations

如果设置为true,图表将显示一个过滤器控件来过滤注释。当有许多注释时使用此选项。

Type: boolean

Default: false

displayDateBarSeparator

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

Type: boolean

Default: false

displayLegendDots

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

Type: boolean

Default: true

displayLegendValues

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

Type: boolean

Default: true

displayRangeSelector

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

变焦选择器中的大纲是图表中第一个系列的日志缩放版本,缩放到适合变焦选择器的高度。

Type: boolean

Default: true

displayZoomButtons

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

Type: boolean

Default: true

fill

从0到100(含100)的数字,指定线形图中每一行下方的填充的alpha值。100表示100%不透明,0表示完全没有填充。填充颜色与上面的线条颜色相同。

Type: number

Default: 0

max

要在Y轴上显示的最大值。如果最大数据点超过此值,则忽略此设置,并调整图表,以显示在最大数据点之上的下一个主要标记。这将优先于scaleType确定的Y轴最大值。

这类似于核心图表中的maxValue。

Type: number

Default: automatic

min

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

这类似于核心图表中的minValue。

Type: number

Default: automatic

numberFormats

指定用于格式化图形顶部值的数字格式模式。

模式应该采用java DecimalFormat类指定的格式。

如果没有指定,则使用默认格式模式。
如果指定了一个字符串模式,它将用于所有值。
如果指定了映射,键是series的索引(从零开始),值是用于格式化指定的series的模式。

你不需要为图表上的每个系列都包括一种格式;任何未指定的系列都将使用默认格式。

如果指定了此选项,则忽略displayExactValues选项。

Type: String, or a map of number:String pairs

Default: automatic

scaleColumns

指定要在图形的Y轴标记上显示哪些值。默认情况是在右边有一个单一的音阶,适用于两个系列;但是你可以把图的不同边缩放到不同的级数值。

此选项接受一个由0到3个数字组成的数组,指定要用作比例值的级数的索引(从零开始)。这些值显示在哪里取决于数组中包含多少个值:

如果指定一个空数组,图表将不会在标记旁边显示Y值。
如果指定一个值,则指示的系列的比例将只显示在图表的右侧。
如果指定两个值,则将在图表右侧添加第二个系列的比例尺a。
如果指定了三个值,第三个系列的比例将添加到图表的中间。
数组中第三个之后的任何值都将被忽略。
当显示多个scale时,建议将scaleType选项设置为“allfixed”或“allmaximized”。

Type: Array of numbers

Default: Automatic

scaleFormat

要用于轴标记的数字格式。默认的“#”显示为整数。

Type: string

Default: '#'

scaleType


设置在Y轴上显示的最大值和最小值。以下可供选择:

“maximized”- Y轴将跨越该系列的最小值到最大值。如果您有多个系列,请使用allmaximized。
“fixed”[default]- Y轴变化,取决于数据值:
如果所有值都是>=0,那么Y轴将从0跨越到最大数据值。
如果所有值都<=0,则Y轴将从0跨越到最小数据值。
如果值是正的和负的,Y轴将从级数的最大值到级数的最小值。
对于多个系列,使用“allfixed”。
“allmaximized”—与“maximized”相同,但在显示多个刻度时使用。这两个图表将在相同的范围内最大化,这意味着其中一个图表将在Y轴上被错误地表示,但是将鼠标悬停在每个系列上将显示它的真实值。
“allfixed”—与“fixed”相同,但在显示多个刻度时使用。该设置根据所应用的级数调整每个刻度(将其与刻度块一起使用)。
如果指定min和/或max选项,它们将优先于由scale类型确定的最小值和最大值。

Type: string

Default: 'fixed'

table

包含与注释表相关的选项。要指定该对象的属性,可以使用对象文字符号:

Type: object

Default: null

table.sortAscending

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

Type: boolean

Default: false

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

从0到10(包括)的一个数字,指定线条的厚度,其中0是最薄的。

Type: number

Default: 0

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

猜你喜欢

转载自blog.csdn.net/Lzs1998/article/details/88345304