【问题标题】:Legend circle radius Google Chart图例圆半径谷歌图表
【发布时间】:2016-07-26 10:05:35
【问题描述】:

我正在使用 Google 可视化来绘制饼图。我想更改图例中色环的半径。

这可能吗?

Google 图表的输出如下所示:

<circle cx="8" cy="8" r="8" stroke="none" stroke-width="0" fill="#de6913" style="
    width: 20px;
"></circle>

我要修改的是 r="8"。

这是一个标准的饼图示例:

  google.charts.load('current', {'packages':['corechart']});
  google.charts.setOnLoadCallback(drawChart);
  function drawChart() {

    var data = google.visualization.arrayToDataTable([
      ['Task', 'Hours per Day'],
      ['Work',     11],
      ['Eat',      2],
      ['Commute',  2],
      ['Watch TV', 2],
      ['Sleep',    7]
    ]);

    var options = {
      title: 'My Daily Activities'
    };

    var chart = new google.visualization.PieChart(document.getElementById('piechart'));

    chart.draw(data, options);
  }

【问题讨论】:

    标签: javascript google-visualization google-pie-chart


    【解决方案1】:

    一旦'ready' 事件在chart 上触发,您就可以进行修改

    这样的东西会起作用

    google.visualization.events.addListener(chart, 'ready', function () {
      var legendCircles = container.getElementsByTagName('circle');
      Array.prototype.forEach.call(legendCircles, function(circle) {
        circle.setAttribute('r', 10);
      });
    });
    

    但如果您希望圆圈和标签彼此一致,
    使用legend.textStyleconfiguration option增加fontSize

    请参阅以下工作 sn-p...

    google.charts.load('current', {
      callback: function () {
        var data = google.visualization.arrayToDataTable([
          ['Task',     'Hours per Day'],
          ['Percent',  10],
          ['Rest',     90],
        ]);
    
        var container = document.getElementById('chart_div');
        var chart = new google.visualization.PieChart(container);
    
        chart.draw(data, {
          legend: {
            textStyle: {
              fontSize: 24
            }
          }
        });
      },
      packages:['corechart']
    });
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="chart_div"></div>

    【讨论】:

    • 感谢白帽。是的,它有助于圆半径。但由于标签没有相应调整,我将不得不更改所有文本标签的 x、y 坐标,以确保圆圈不会碰撞并在标签上进行填充。
    • 您也可以使用legend.textStyle 增加fontSize,请参阅编辑以上答案...
    • 它有帮助,但在我的情况下,如果我调整字体大小以重新定位元素,它会完全弄乱布局。我真正需要的是能够只修改圆半径并相应地调整标签。
    • 不幸的是,唯一的选项是手动的。但似乎如果你将半径增加一定数量,调整 x,y 以匹配不会太难
    猜你喜欢
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 2014-11-09
    相关资源
    最近更新 更多