Настройка осей

Обзор

Измерения в данных часто отображаются на осях , горизонтальных и вертикальных. Это относится к: диаграмме с областями , гистограмме. , диаграмма свечей , столбчатая диаграмма , комбинированная диаграмма , линейная диаграмма , диаграмма с ступенчатой ​​​​областью и точечная диаграмма .

Когда вы создаете диаграмму с осями, вы можете настроить некоторые их свойства:

  • Дискретный и непрерывный
  • Направление — вы можете настроить направление с помощью параметра hAxis/vAxis.direction.
  • Расположение и стиль метки. Вы можете настроить положение и стиль метки с помощью параметров hAxis/vAxis.textPosition и hAxis/vAxis.textStyle.
  • Текст и стиль заголовка оси. Вы можете настроить текст и стиль заголовка оси, используя параметры hAxis/vAxis.title и hAxis/vAxis.titleTextStyle.
  • Масштаб оси — вы можете установить логарифмический (логарифмический) масштаб оси, используя параметры hAxis/vAxis.logScale или hAxis/vAxis.scaleType.
  • Полный список параметров конфигурации осей см. в параметрах hAxis и vAxis в документации по конкретной диаграмме.

Терминология

Большая/малая ось:

  • Большая ось — это ось вдоль естественной ориентации диаграммы. Для линейных, площадных, столбчатых, комбинированных, ступенчатых и свечных диаграмм это горизонтальная ось. Для гистограммы это вертикальный. Точечная и круговая диаграммы не имеют главной оси.
  • Малая ось - это другая ось.

Дискретная/непрерывная ось:

  • Дискретная ось имеет конечное число равномерно расположенных значений, называемых категориями.
  • Непрерывная ось имеет бесконечное число возможных значений.

Дискретный и непрерывный

Большая ось диаграммы может быть дискретной или непрерывной. При использовании дискретной оси точки данных каждой серии равномерно распределяются по оси в соответствии с их индексом строки. При использовании непрерывной оси точки данных располагаются в соответствии со значением их домена.

Маркировка тоже отличается. На дискретной оси в качестве меток используются названия категорий (указанные в столбце домена данных). На непрерывной оси метки генерируются автоматически: на диаграмме отображаются равномерно расположенные линии сетки, где каждая линия сетки помечена в соответствии со значением, которое она представляет.

Следующие оси всегда непрерывны:

  • Обе оси пузырьковых диаграмм.
  • Малая ось.

В линейных, площадных, гистограммах, столбцах и свечных диаграммах (и комбинированных диаграммах, содержащих только такие серии) вы можете управлять типом главной оси:

  • Для дискретной оси установите тип столбца данных в string .
  • Для непрерывной оси задайте один из типов столбца данных: number , date , datetime или timeofday .
Дискретный / непрерывный Тип первого столбца Пример
Дискретный нить
Непрерывный количество
Непрерывный свидание

Масштаб оси

Вы можете установить масштаб оси, используя опцию scaleType . Например, чтобы установить масштаб вертикальной оси в логарифмическом масштабе, используйте следующую опцию:

  vAxis: {
        scaleType: 'log'
  }

На следующей линейной диаграмме показан рост населения мира как в линейной (стандартной), так и в логарифмической шкале.

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <table class="columns"> <tr> <th>Linear Scale</th> <th>Log Scale</th> </tr> <tr> <td><div id="linear_div"></div></td> <td><div id="log_div"></div></td> </tr> </table> google.charts.load('current', {'packages':['corechart', 'line']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('date', 'Date'); data.addColumn('number', 'Population'); data.addRows([ [new Date(1400, 1, 1), 374], [new Date(1500, 1, 1), 460], [new Date(1600, 1, 1), 579], [new Date(1700, 1, 1), 679], [new Date(1750, 1, 1), 770], [new Date(1800, 1, 1), 954], [new Date(1850, 1, 1), 1241], [new Date(1900, 1, 1), 1633], [new Date(1910, 1, 1), 1750], [new Date(1920, 1, 1), 1860], [new Date(1930, 1, 1), 2070], [new Date(1940, 1, 1), 2300], [new Date(1950, 1, 1), 2558], [new Date(1951, 1, 1), 2595], [new Date(1952, 1, 1), 2637], [new Date(1953, 1, 1), 2682], [new Date(1954, 1, 1), 2730], [new Date(1955, 1, 1), 2782], [new Date(1956, 1, 1), 2835], [new Date(1957, 1, 1), 2891], [new Date(1958, 1, 1), 2948], [new Date(1959, 1, 1), 3001], [new Date(1960, 1, 1), 3043], [new Date(1961, 1, 1), 3084], [new Date(1962, 1, 1), 3140], [new Date(1963, 1, 1), 3210], [new Date(1964, 1, 1), 3281], [new Date(1965, 1, 1), 3350], [new Date(1966, 1, 1), 3421], [new Date(1967, 1, 1), 3490], [new Date(1968, 1, 1), 3562], [new Date(1969, 1, 1), 3637], [new Date(1970, 1, 1), 3713], [new Date(1971, 1, 1), 3790], [new Date(1972, 1, 1), 3867], [new Date(1973, 1, 1), 3942], [new Date(1974, 1, 1), 4017], [new Date(1975, 1, 1), 4089], [new Date(1976, 1, 1), 4160], [new Date(1977, 1, 1), 4232], [new Date(1978, 1, 1), 4304], [new Date(1979, 1, 1), 4379], [new Date(1980, 1, 1), 4451], [new Date(1981, 1, 1), 4534], [new Date(1982, 1, 1), 4615], [new Date(1983, 1, 1), 4696], [new Date(1984, 1, 1), 4775], [new Date(1985, 1, 1), 4856], [new Date(1986, 1, 1), 4941], [new Date(1987, 1, 1), 5027], [new Date(1988, 1, 1), 5115], [new Date(1989, 1, 1), 5201], [new Date(1990, 1, 1), 5289], [new Date(1991, 1, 1), 5372], [new Date(1992, 1, 1), 5456], [new Date(1993, 1, 1), 5538], [new Date(1994, 1, 1), 5619], [new Date(1995, 1, 1), 5699], [new Date(1996, 1, 1), 5779], [new Date(1997, 1, 1), 5858], [new Date(1998, 1, 1), 5935], [new Date(1999, 1, 1), 6012], [new Date(2000, 1, 1), 6089], [new Date(2001, 1, 1), 6165], [new Date(2002, 1, 1), 6242], [new Date(2003, 1, 1), 6319], [new Date(2004, 1, 1), 6396], [new Date(2005, 1, 1), 6473], [new Date(2006, 1, 1), 6551], [new Date(2007, 1, 1), 6630], [new Date(2008, 1, 1), 6709], [new Date(2009, 1, 1), 6788] ]); var linearOptions = { title: 'World Population Since 1400 AD in Linear Scale', legend: 'none', width: 450, height: 500, hAxis: { title: 'Date' }, vAxis: { title: 'Population (millions)', ticks: [0, 1000, 2000, 4000, 6000] } }; var logOptions = { title: 'World Population Since 1400 AD in Log Scale', legend: 'none', width: 450, height: 500, hAxis: { title: 'Date' }, vAxis: { title: 'Population (millions)', scaleType: 'log', ticks: [0, 1000, 2000, 4000, 6000] } }; var linearChart = new google.visualization.LineChart(document.getElementById('linear_div')); linearChart.draw(data, linearOptions); var logChart = new google.visualization.LineChart(document.getElementById('log_div')); logChart.draw(data, logOptions); } <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <table class="columns"> <tr> <th>Linear Scale</th> <th>Log Scale</th> </tr> <tr> <td><div id="linear_div"></div></td> <td><div id="log_div"></div></td> </tr> </table> google.charts.load('current', {'packages':['corechart', 'line']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('date', 'Date'); data.addColumn('number', 'Population'); data.addRows([ [new Date(1400, 1, 1), 374], [new Date(1500, 1, 1), 460], [new Date(1600, 1, 1), 579], [new Date(1700, 1, 1), 679], [new Date(1750, 1, 1), 770], [new Date(1800, 1, 1), 954], [new Date(1850, 1, 1), 1241], [new Date(1900, 1, 1), 1633], [new Date(1910, 1, 1), 1750], [new Date(1920, 1, 1), 1860], [new Date(1930, 1, 1), 2070], [new Date(1940, 1, 1), 2300], [new Date(1950, 1, 1), 2558], [new Date(1951, 1, 1), 2595], [new Date(1952, 1, 1), 2637], [new Date(1953, 1, 1), 2682], [new Date(1954, 1, 1), 2730], [new Date(1955, 1, 1), 2782], [new Date(1956, 1, 1), 2835], [new Date(1957, 1, 1), 2891], [new Date(1958, 1, 1), 2948], [new Date(1959, 1, 1), 3001], [new Date(1960, 1, 1), 3043], [new Date(1961, 1, 1), 3084], [new Date(1962, 1, 1), 3140], [new Date(1963, 1, 1), 3210], [new Date(1964, 1, 1), 3281], [new Date(1965, 1, 1), 3350], [new Date(1966, 1, 1), 3421], [new Date(1967, 1, 1), 3490], [new Date(1968, 1, 1), 3562], [new Date(1969, 1, 1), 3637], [new Date(1970, 1, 1), 3713], [new Date(1971, 1, 1), 3790], [new Date(1972, 1, 1), 3867], [new Date(1973, 1, 1), 3942], [new Date(1974, 1, 1), 4017], [new Date(1975, 1, 1), 4089], [new Date(1976, 1, 1), 4160], [new Date(1977, 1, 1), 4232], [new Date(1978, 1, 1), 4304], [new Date(1979, 1, 1), 4379], [new Date(1980, 1, 1), 4451], [new Date(1981, 1, 1), 4534], [new Date(1982, 1, 1), 4615], [new Date(1983, 1, 1), 4696], [new Date(1984, 1, 1), 4775], [new Date(1985, 1, 1), 4856], [new Date(1986, 1, 1), 4941], [new Date(1987, 1, 1), 5027], [new Date(1988, 1, 1), 5115], [new Date(1989, 1, 1), 5201], [new Date(1990, 1, 1), 5289], [new Date(1991, 1, 1), 5372], [new Date(1992, 1, 1), 5456], [new Date(1993, 1, 1), 5538], [new Date(1994, 1, 1), 5619], [new Date(1995, 1, 1), 5699], [new Date(1996, 1, 1), 5779], [new Date(1997, 1, 1), 5858], [new Date(1998, 1, 1), 5935], [new Date(1999, 1, 1), 6012], [new Date(2000, 1, 1), 6089], [new Date(2001, 1, 1), 6165], [new Date(2002, 1, 1), 6242], [new Date(2003, 1, 1), 6319], [new Date(2004, 1, 1), 6396], [new Date(2005, 1, 1), 6473], [new Date(2006, 1, 1), 6551], [new Date(2007, 1, 1), 6630], [new Date(2008, 1, 1), 6709], [new Date(2009, 1, 1), 6788] ]); var linearOptions = { title: 'World Population Since 1400 AD in Linear Scale', legend: 'none', width: 450, height: 500, hAxis: { title: 'Date' }, vAxis: { title: 'Population (millions)', ticks: [0, 1000, 2000, 4000, 6000] } }; var logOptions = { title: 'World Population Since 1400 AD in Log Scale', legend: 'none', width: 450, height: 500, hAxis: { title: 'Date' }, vAxis: { title: 'Population (millions)', scaleType: 'log', ticks: [0, 1000, 2000, 4000, 6000] } }; var linearChart = new google.visualization.LineChart(document.getElementById('linear_div')); linearChart.draw(data, linearOptions); var logChart = new google.visualization.LineChart(document.getElementById('log_div')); logChart.draw(data, logOptions); }

Если ваши данные содержат нулевые или отрицательные значения, вы можете нанести точки, используя опцию scaleType: 'mirrorLog' . В зеркальной логарифмической шкале построенное значение отрицательного числа равно логарифму абсолютного значения числа. Значения, близкие к 0, нанесены на линейную шкалу.

В следующем примере показаны положительные и отрицательные числа Фибоначчи, построенные как в зеркальном логарифмическом масштабе, так и в линейном масштабе.

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <button id="change-chart"></button> <br><br> <div id="chart_div"></div> google.charts.load('current', {'packages':['corechart', 'line']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var button = document.getElementById('change-chart'); var chartDiv = document.getElementById('chart_div'); var data = new google.visualization.DataTable(); data.addColumn('number', 'Index'); data.addColumn('number', 'Fibonacci Number'); data.addRows([ [-16, -987], [-15, 610], [-14, -377], [-13, 233], [-12, -144], [-11, 89], [-10, -55], [-9, 34], [-8, -21], [-7, 13], [-6, -8], [-5, 5], [-4, -3], [-3, 2], [-2, -1], [-1, 1], [0, 0], [1, 1], [2, 1], [3, 2], [4, 3], [5, 5], [6, 8], [7, 13], [8, 21], [9, 34], [10, 55], [11, 89], [12, 144], [13, 233], [14, 377], [15, 610], [16, 987] ]); var linearOptions = { title: 'Fibonacci Numbers in Linear Scale', legend: 'none', pointSize: 5, width: 900, height: 500, hAxis: { gridlines: { count: -1 } }, vAxis: { ticks: [-1000, -500, 0, 500, 1000] } }; var mirrorLogOptions = { title: 'Fibonacci Numbers in Mirror Log Scale', legend: 'none', pointSize: 5, width: 900, height: 500, hAxis: { gridlines: { count: -1 } }, vAxis: { scaleType: 'mirrorLog', ticks: [-1000, -250, -50, -10, 0, 10, 50, 250, 1000] } }; function drawLinearChart() { var linearChart = new google.visualization.LineChart(chartDiv); linearChart.draw(data, linearOptions); button.innerText = 'Change to Mirror Log Scale'; button.onclick = drawMirrorLogChart; } function drawMirrorLogChart() { var mirrorLogChart = new google.visualization.LineChart(chartDiv); mirrorLogChart.draw(data, mirrorLogOptions); button.innerText = 'Change to Linear Scale'; button.onclick = drawLinearChart; } drawMirrorLogChart(); } <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <button id="change-chart"></button> <br><br> <div id="chart_div"></div> google.charts.load('current', {'packages':['corechart', 'line']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var button = document.getElementById('change-chart'); var chartDiv = document.getElementById('chart_div'); var data = new google.visualization.DataTable(); data.addColumn('number', 'Index'); data.addColumn('number', 'Fibonacci Number'); data.addRows([ [-16, -987], [-15, 610], [-14, -377], [-13, 233], [-12, -144], [-11, 89], [-10, -55], [-9, 34], [-8, -21], [-7, 13], [-6, -8], [-5, 5], [-4, -3], [-3, 2], [-2, -1], [-1, 1], [0, 0], [1, 1], [2, 1], [3, 2], [4, 3], [5, 5], [6, 8], [7, 13], [8, 21], [9, 34], [10, 55], [11, 89], [12, 144], [13, 233], [14, 377], [15, 610], [16, 987] ]); var linearOptions = { title: 'Fibonacci Numbers in Linear Scale', legend: 'none', pointSize: 5, width: 900, height: 500, hAxis: { gridlines: { count: -1 } }, vAxis: { ticks: [-1000, -500, 0, 500, 1000] } }; var mirrorLogOptions = { title: 'Fibonacci Numbers in Mirror Log Scale', legend: 'none', pointSize: 5, width: 900, height: 500, hAxis: { gridlines: { count: -1 } }, vAxis: { scaleType: 'mirrorLog', ticks: [-1000, -250, -50, -10, 0, 10, 50, 250, 1000] } }; function drawLinearChart() { var linearChart = new google.visualization.LineChart(chartDiv); linearChart.draw(data, linearOptions); button.innerText = 'Change to Mirror Log Scale'; button.onclick = drawMirrorLogChart; } function drawMirrorLogChart() { var mirrorLogChart = new google.visualization.LineChart(chartDiv); mirrorLogChart.draw(data, mirrorLogOptions); button.innerText = 'Change to Linear Scale'; button.onclick = drawLinearChart; } drawMirrorLogChart(); }

Форматы чисел

Вы можете управлять форматированием номеров меток с помощью hAxis.format и vAxis.format . Например, {hAxis: { format:'#,###%'} } отображает значения "1000%", "750%" и "50%" для значений 10, 7,5 и 0,5. Вы также можете указать любой из следующих пресетов:

  • {format: 'none'} : отображает числа без форматирования (например, 8000000)
  • {format: 'decimal'} : отображает числа с разделителями тысяч (например, 8 000 000)
  • {format: 'scientific'} : числа отображаются в экспоненциальном представлении (например, 8e6)
  • {format: 'currency'} : отображает числа в местной валюте (например, 8 000 000,00 долларов США).
  • {format: 'percent'} : числа отображаются в процентах (например, 800 000 000%)
  • {format: 'short'} : отображает сокращенные числа (например, 8M)
  • {format: 'long'} : числа отображаются как полные слова (например, 8 миллионов)

В таблице ниже вы можете выбрать один из пресетов:

Ниже приведена полная веб-страница для приведенной выше диаграммы.

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <select id="format-select"> <option value="">none</option> <option value="decimal" selected>decimal</option> <option value="scientific">scientific</option> <option value="percent">percent</option> <option value="currency">currency</option> <option value="short">short</option> <option value="long">long</option> </select> <div id="number_format_chart"> google.charts.load('current', {packages:['corechart']}); google.charts.setOnLoadCallback(drawStuff); function drawStuff() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Country'); data.addColumn('number', 'GDP'); data.addRows([ ['US', 16768100], ['China', 9181204], ['Japan', 4898532], ['Germany', 3730261], ['France', 2678455] ]); var options = { title: 'GDP of selected countries, in US $millions', width: 500, height: 300, legend: 'none', bar: {groupWidth: '95%'}, vAxis: { gridlines: { count: 4 } } }; var chart = new google.visualization.ColumnChart(document.getElementById('number_format_chart')); chart.draw(data, options); document.getElementById('format-select').onchange = function() { options['vAxis']['format'] = this.value; chart.draw(data, options); }; }; <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <select id="format-select"> <option value="">none</option> <option value="decimal" selected>decimal</option> <option value="scientific">scientific</option> <option value="percent">percent</option> <option value="currency">currency</option> <option value="short">short</option> <option value="long">long</option> </select> <div id="number_format_chart"> google.charts.load('current', {packages:['corechart']}); google.charts.setOnLoadCallback(drawStuff); function drawStuff() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Country'); data.addColumn('number', 'GDP'); data.addRows([ ['US', 16768100], ['China', 9181204], ['Japan', 4898532], ['Germany', 3730261], ['France', 2678455] ]); var options = { title: 'GDP of selected countries, in US $millions', width: 500, height: 300, legend: 'none', bar: {groupWidth: '95%'}, vAxis: { gridlines: { count: 4 } } }; var chart = new google.visualization.ColumnChart(document.getElementById('number_format_chart')); chart.draw(data, options); document.getElementById('format-select').onchange = function() { options['vAxis']['format'] = this.value; chart.draw(data, options); }; };

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

        function drawStuff() {
          var data = new google.visualization.DataTable();
          data.addColumn('string', 'Country');
          data.addColumn('number', 'GDP');
          data.addRows([
            ['US', 16768100],
            ['China', 9181204],
            ['Japan', 4898532],
            ['Germany', 3730261],
            ['France', 2678455]
          ]);

         var options = {
           title: 'GDP of selected countries, in US $millions',
           width: 500,
           height: 300,
           legend: 'none',
           bar: {groupWidth: '95%'},
           vAxis: { gridlines: { count: 4 } }
         };

         var chart = new google.visualization.ColumnChart(document.getElementById('number_format_chart'));
         chart.draw(data, options);

         document.getElementById('format-select').onchange = function() {
           options['vAxis']['format'] = this.value;
           chart.draw(data, options);
         };
      };
    </script>
  </head>
  <body>
    <select id="format-select">
      <option value="">none</option>
      <option value="decimal" selected>decimal</option>
      <option value="scientific">scientific</option>
      <option value="percent">percent</option>
      <option value="currency">currency</option>
      <option value="short">short</option>
      <option value="long">long</option>
    </select>
    <div id="number_format_chart">
  </body>
</html>

При использовании формата, который использует текст (например, long формат, который отображает 8 000 000 как «8 миллионов»), вы можете локализовать строки на другие языки, указав код языка при загрузке библиотеки Google Charts. Например, чтобы изменить "8 миллионов" на русское "8 миллионов", назовите библиотеку так:

<script type='text/javascript' src='https://www.gstatic.com/charts/loader.js'></script>
<script type='text/javascript'>
  google.charts.load('current', {'packages': ['corechart'], 'language': 'ru'});
  google.charts.setOnLoadCallback(drawMarkersMap);
</script>