当前位置: 首页 > 知识库问答 >
问题:

谷歌图表Sankey-节点文本样式

钦良弼
2023-03-14

有没有办法在Google的Sankey图中使用样式角色更改目标节点文本的颜色?目前我的数据设置如下:

[Source, Target, Label, Style] 
[A,B,"Test Label", "#ffffff"]

我可以改变节点和链接的颜色,但不能改变文本的颜色。

在这一点上,d3对我来说不是一个选择,整个想法是将节点动画化,使其在其位置一个接一个地出现 - 因此尝试更改样式并重新绘制图表。增大表不起作用,因为节点会更改位置。有什么想法吗?

共有1个答案

闻枫
2023-03-14

无法找到使用标准选项设置单个节点文本样式的方法

但是在绘制图表后,颜色可以手动设置

通常,图表的“ready”事件可用于了解图表何时完成绘制,
但是,图表将在每个交互式事件上恢复为默认的Node文本样式,
例如“onmouseover”,“onmouseout”

相反,使用突变观察者来更改任何交互性的节点文本

请参阅以下工作片段,它将颜色映射到每个Node文本…

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

function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('string', 'From');
  data.addColumn('string', 'To');
  data.addColumn('number', 'Weight');
  data.addRows([
    ['A', 'X', 5],
    ['A', 'Y', 7],
    ['A', 'Z', 6],
    ['B', 'X', 2],
    ['B', 'Y', 9],
    ['B', 'Z', 4]
  ]);

  var options = {
    width: 600
  };

  var colorMap = {
    'A': 'cyan',
    'X': 'magenta',
    'Y': 'yellow',
    'Z': 'lime',
    'B': 'violet'
  };

  var chartDiv = document.getElementById('sankey_basic');
  var chart = new google.visualization.Sankey(chartDiv);

  var observer = new MutationObserver(function (mutations) {
    mutations.forEach(function (mutation) {
      mutation.addedNodes.forEach(function (node) {
        if (node.tagName === 'text') {
          node.setAttribute('font-size', '20');
          node.setAttribute('fill', colorMap[node.innerHTML]);
        }
      });
    });
  });
  observer.observe(chartDiv, {
    childList: true,
    subtree: true
  });

  chart.draw(data, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="sankey_basic"></div>
 类似资料:
  • 以下是基本SanKey图表的示例。 我们已经在Google Charts Configuration Syntax一章中看到了用于绘制图表的配置 。 现在,让我们看一个基本SanKey图表的示例。 配置 (Configurations) 我们使用Sankey类来显示Sankey图表。 Sankey chart = new Sankey(); 例子 (Example) HelloWorld.jav

  • 创建了一个阴阳烛图表,四分位数用于合唱青蛙活动。试图找出如何将实际数据点添加到图表中(使其成为组合图表)。 以下是烛台图的代码: 我想在每个相关的烛台图上添加基础数据(带红点的散点图)。以便用户能够更好地可视化数据的传播,并最终识别异常值。 下面是前三个烛台图的基础数据。[69, 78, 87, 91, 102, 109, 111, 112, 117, 118, 120, 126, 129, 13

  • 以下是具有多个级别的SanKey图表的示例。 我们已经在Google Charts Configuration Syntax一章中看到了用于绘制图表的配置 。 现在,让我们看一个具有多个级别的SanKey图表的示例。 配置 (Configurations) 我们使用Sankey类来显示具有多个级别的Sankey图表。 Sankey chart = new Sankey(); 例子 (Exampl

  • 以下是自定义SanKey图表的示例。 我们已经在Google Charts Configuration Syntax一章中看到了用于绘制图表的配置 。 现在,让我们看一个自定义SanKey图表的示例。 配置 (Configurations) 我们使用Sankey类来显示Sankey图表。 Sankey chart = new Sankey(); 例子 (Example) HelloWorld.j

  • 我正在使用geojson数据处理Google地图中的图层。 我现在有一个有四个不同多边形的图层,当你点击它们时,它们会从灰色变成绿色。但是当我再次点击时,它不会变回灰色,这就是点击功能的目的。 在我的情况下,它适用于我的编辑器,https://embed.plnkr.co/hi4MtjO8f0PN6rCW70rE/。这是完整的代码段。 我修好了!!我更改了几行的位置,并将其设置为false或tru

  • 我正在使用从http://script.google.com.访问的Google Apps Script编辑器创建脚本,我想使用https://developers.google.com/chart/interactive/docs/quick_start.中记录的较新的图表服务。 [html [script type=“text/javascript”src=”https://www.googl