javascript - 如何调整右侧垂直轴的对齐方式?

标签 javascript html charts google-visualization candlestick-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':['corechart']});
      google.charts.setOnLoadCallback(drawChart);

  function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Mon', 20, 28, 38, 45],
      ['Tue', 31, 38, 55, 66],
      ['Wed', 50, 55, 77, 80],
      ['Thu', 77, 77, 66, 50],
      ['Fri', 68, 66, 22, 15]
      // Treat first row as data as well.
    ], true);

    var options = {
      legend:'none'
    };

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

    chart.draw(data, options);
  }
    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 900px; height: 500px;"></div>
  </body>
</html>

最佳答案

标签对齐没有标准配置选项,
但您可以在图表的 'ready' 事件上手动移动它们。

请参阅以下工作片段...

google.charts.load('current', {
  packages: ['corechart']
}).then(function () {
  var data = google.visualization.arrayToDataTable([
    ['Mon', 20, 28, 38, 45],
    ['Tue', 31, 38, 55, 66],
    ['Wed', 50, 55, 77, 80],
    ['Thu', 77, 77, 66, 50],
    ['Fri', 68, 66, 22, 15]
  ], true);

  var options = {
    legend: 'none'
  };

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

  google.visualization.events.addListener(chart, 'ready', function () {
    var chartLayout = chart.getChartLayoutInterface();
    var labelIndex = -1;
    var labelWidth;

    var axisLabels = container.getElementsByTagName('text');
    Array.prototype.forEach.call(axisLabels, function(label) {
      if (label.getAttribute('text-anchor') === 'end') {
        labelIndex++;
        labelWidth = chartLayout.getBoundingBox('vAxis#0#label#' + labelIndex).width;
        label.setAttribute('x', labelWidth);
      }
    });
  });

  chart.draw(data, options);
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>

关于javascript - 如何调整右侧垂直轴的对齐方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54394365/

相关文章:

javascript - 在 javascript 中使用 lable.innerHTML 的标签集文本在回发后丢失

javascript - 使用 jquery .text() 方法向文本字符串添加新行

javascript - 如何区分 JavaScript 中的 click 和 mousedown 事件?

apache-flex - 如何在 Flex 图表轴上只显示整数?

c# - 图表工具在 Visual Studio 中显示为灰色

javascript - 如何检查标题元素的显示属性的值?

javascript - 显示列表中的 1 个特定图像?

javascript - 如果出现 HTTP 错误 422,如何使用 fetch 获取响应正文?

html - 在 div 的正方形中平铺 9 张图像......当前方式?

c# - Silverlight Toolkit - 创建类似 Google 实时的图表