You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SVG文件中的纯色组合应用到Google Timeline Chart条形上

实现SVG颜色应用到Google Timeline Chart条形

步骤1:提取SVG中的颜色值

从你提供的SVG文件中,可直接获取两种目标颜色:

  • 对应.color类的颜色:#888
  • 对应.color1类的颜色:red(可转为十六进制格式#ff0000,和Google图表的颜色格式更兼容)

方法一:直接在数据行中指定颜色

沿用你当前的addRows写法,将SVG中的颜色值替换原有的纯色值即可:

// 使用SVG中第一种颜色
dataTable.addRows(['Washington', '#888', new Date(2022, 5, 1), new Date(2022, 6, 2)]);
// 使用SVG中第二种颜色
dataTable.addRows(['New York', '#ff0000', new Date(2022, 6, 1), new Date(2022, 7, 2)]);

方法二:通过图表配置批量应用颜色

如果需要让图表循环使用这两种颜色,可在图表的options中设置colors数组,无需在每一行单独指定:

// 定义图表配置,引入SVG中的两种颜色
const options = {
  colors: ['#888', '#ff0000']
};

// 初始化并绘制图表
const chart = new google.visualization.Timeline(document.getElementById('timeline-container'));
chart.draw(dataTable, options);

进阶:动态读取外部SVG文件中的颜色

如果SVG是独立文件,可通过JS动态加载并解析颜色,避免硬编码:

// 加载外部SVG文件
fetch('your-svg-file.svg')
  .then(res => res.text())
  .then(svgContent => {
    // 解析SVG内容为DOM对象
    const svgDoc = new DOMParser().parseFromString(svgContent, 'image/svg+xml');
    
    // 获取两个矩形的计算样式颜色(处理defs中style定义的颜色)
    const color1 = window.getComputedStyle(svgDoc.querySelector('.color')).fill;
    const color2 = window.getComputedStyle(svgDoc.querySelector('.color1')).fill;
    
    // 将颜色应用到数据行
    dataTable.addRows(['Washington', color1, new Date(2022, 5, 1), new Date(2022, 6, 2)]);
    dataTable.addRows(['New York', color2, new Date(2022, 6, 1), new Date(2022, 7, 2)]);
    
    // 绘制图表
    chart.draw(dataTable);
  });

注意:getComputedStyle返回的颜色格式为rgb(),Google Timeline Chart同样支持该格式,无需额外转换。

内容的提问来源于stack exchange,提问作者krithikaGopalakrishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:05:30