Google visualization 如何从Google Visualizations量表中删除值标签?

Google visualization 如何从Google Visualizations量表中删除值标签?,google-visualization,Google Visualization,我在页面上使用Google Visualizations仪表,但重要的是它显示的值不能显示为指针正下方的标签 我找到了两种方法。在DOM中导航到gauge小部件并导航到SVG片段后,可以将textContent元素设置为空字符串,也可以完全删除整个文本标签实体 function removeLabel(widget) { var gauge_label_parent = widget.getElementsByTagName("g")[1]; var gauge_label =

我在页面上使用Google Visualizations仪表,但重要的是它显示的值不能显示为指针正下方的标签

我找到了两种方法。在DOM中导航到gauge小部件并导航到SVG片段后,可以将textContent元素设置为空字符串,也可以完全删除整个文本标签实体

function removeLabel(widget) {
    var gauge_label_parent = widget.getElementsByTagName("g")[1];
    var gauge_label = gauge_label_parent.getElementsByTagName("text")[0];
    gauge_label.textContent = "";
    // Another way of getting rid of the text: remove the element
    //    gauge_label_parent.removeChild(gauge_label);
}
问题是:这两种技术都只在第一次起作用。如果我使用更新的值重新绘制仪表,则标签会重新出现,并且尝试删除标签元素或设置textContent=“”不会产生任何效果

因此,不只是能够通过以下方式更新值:

data.setValue(0, 1, newValue);
chart.draw(data, options);
我发现我必须稍微改变一下选项,比如:

data.setValue(0, 1, newValue);
options.minorTicks = 3; // Change the options somehow
chart.draw(data, options); // Tell gauge to draw that
options.minorTicks = 2; // Change the options back to what they were
chart.draw(data, options); // Draw again
这里有一把小提琴,看看它是如何工作的。根据是否存在标签问题,将fixLabel设置为true或false。请记住,标签将(正确地)第一次丢失。更新其值时,它将重新显示。

因此,有几个问题:

  • 知道它为什么这么做吗
  • 有没有一种方法可以在不必通过此选项更改业务的情况下删除标签
  • 附加问题:我是不清楚minorTicks应该如何工作,还是它坏了?文档说它应该是两个专业之间的小刻度的数量,但是设置为2只会给我一个小刻度,设置为3会给我2,等等。如果我设置为0或1,我会在控制台中得到“解析d=“””的问题

    • 好的,我试着回答:

      1) 当前API版本不管理标签选项

      解决方法:尝试使用此CSS

      svg g g  {
       font-size:0px;
      }
      


      上面的提琴向你解释了米诺蒂克的意思。如果设置2,则得到3个“空格”,这是正确的。次要厚度表示两个主要厚度之间的“空白”空间数。在本例中,您将看到箭头和代表次粗线的细线之间的完美匹配

      添加到Madthews答案:

      对于那些试图从Google Gague图表中删除标签的人

      如果您将以下代码添加到页面中(为了保持页面整洁,我将其放在页眉中),那么您可以将标签的字体大小设置为任意大小

      <style>
      * {text-rendering: optimizeLegibility; font-size:100%;}
      svg g g {font-size:0px;}
      </style>
      
      
      *{文本呈现:优化易读性;字体大小:100%;}
      svg g{字体大小:0px;}
      

      我一直在玩弄这一点有一段时间了,上面的css顶行是必不可少的,否则它将无法工作

      您可以只插入带有空白格式字段的值,而不必处理样式

      var data = google.visualization.arrayToDataTable([
          ['Label', 'Value'],
          ['Unitless Indicator', {v:counter, f:''} ]
      ]);
      
      这也适用于
      addRows

      jsfiddle这里:

      这个怎么样

      ['Label', 'Value'],
      ['', 80]
      

      用这个。这也被谷歌贴上了标签

      var data = google.visualization.arrayToDataTable([
       ['Label', 'Value'],
       ['', {v: <Your_own_value_of_the_gauge_meter>, f: ''}],
      ]);
      
      var data=google.visualization.arrayToDataTable([
      ['Label','Value'],
      ['',{v:,f'''}],
      ]);
      
      使用您的值变量代替“”。就这样