谷歌折线图 X 轴上有双标签

2023-11-29

我正在研究谷歌折线图,我想在 x 轴上加双标签(日期明智的过程),我可以使用下面的代码绘制没有日期的图表,但无法填充日期,

<html>
<head>
<title>Google Charts Tutorial</title>
<script type="text/javascript" src="loader.js"></script>
<script type="text/javascript">
     google.charts.load('current', {packages: ['corechart']});  
   </script>
</head>
<body>
    <div id="container"
        style="width: 1610px; height: 400px; margin-left:-120px;"></div>

    <script language="JavaScript">
\
function drawChart() {
   // Define the chart to be drawn.
   var data = new google.visualization.DataTable();
   data.addColumn('string', '');
   data.addColumn('number', 'Suceess');
   data.addColumn('number', 'Error');
   data.addColumn('number', 'Warning');


    data.addRows([
     ['RE-LINK|',  266, 2136, 472],
        ['UPDATE-IB',  0, 1722, 2728],
        ['UPDATE-SA',  0, 43580, 87713],  
        ['CREATE-IB/SA', 0, 18920, 103690],
         ['TERMINATE-IB',  0, 2, 0],
          ['TERMINATE-COVERAGE',  3682, 5917, 0],
           ['ADD-COVERAGE AND CHANGE-SITE',  1101, 2433, 7887],
           ['day1--CREATE-IB',  36647,  0,1064]

    ]);
     data.addRows([
    ['RE-LINK',  11649, 221,    1127],
        ['UPDATE-IB',  0,   4844,   79886],
        ['UPDATE-SA',  0, 2961, 7377],  
        ['CREATE-IB/SA', 0, 3993,   13268],
         ['TERMINATE-IB',  4105, 0, 0],
          ['TERMINATE-COVERAGE',  1844, 10834, 0],
           ['day2--ADD-COVERAGE AND CHANGE-SITE',  218, 717,    10498]

    ]);
     data.addRows([
    ['RE-LINK',  3484,  3,  28],
        ['UPDATE-IB',  0, 139207,   238037],
        ['UPDATE-SA',  0, 3, 3],  
        ['CREATE-IB/SA', 0, 4598,   12680],
          ['TERMINATE-COVERAGE',  480,  1210,   90],
           ['day3--ADD-COVERAGE AND CHANGE-SITE',  1,   72, 2372]
    ]);
   data.addRows([



            ['RE-LINK',  7142,  465,    1427],
        ['UPDATE-IB',  0, 105719,   216275],
        ['UPDATE-SA',  0, 14761,    31698],  
        ['CREATE-IB/SA', 0, 5071,   14184],
         ['TERMINATE-IB',  18, 10, 0],
          ['TERMINATE-COVERAGE',  5265, 1280,   98],
           ['day4--ADD-COVERAGE AND CHANGE-SITE',  1173,    12474,  15545]
   ]);

   // Set chart options
   var options = {'title' : 'Applications status biz process wise(4 Days)',


      hAxis: {
         title: '',
         textStyle: {
            color: '#01579b',
            fontSize: 10,
            fontName: 'Arial',
            bold: true,
            italic: true
         }, 
         titleTextStyle: {
            color: '#01579b',
            fontSize: 12,
            fontName: 'Arial',
            bold: false,
            italic: true
         },
         slantedTextAngle:90
      },
      vAxis: {
         title: '',
         textStyle: {
            color: '#1a237e',
            fontSize: 12,
            bold: true
         },
         titleTextStyle: {
            color: '#1a237e',
            fontSize: 12,
            bold: true
         }
      }, 
      'width':1600,
      'height':400,   
      colors: ['#00ff00', '#ff0000','#ffe102'],
       legend: { position: 'top' },

   };

   // Instantiate and draw the chart.
   var chart = new google.visualization.LineChart(document.getElementById('container'));
   chart.draw(data, options);
}
google.charts.setOnLoadCallback(drawChart);
</script>
</body>
</html>

我想画这个图表

请帮忙解决这个问题......


尽管所请求的布局无法通过标准配置选项获得,
如果你可以手动修改 svg,这是可以实现的

当图表的'ready'事件触发,添加类别标签和组行

请参阅以下工作片段,这只是一个显示可能性的示例

根据图表的大小和位置做出了一些假设......

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

function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('date', '');
  data.addColumn('string', '');
  data.addColumn('number', 'Success');
  data.addColumn('number', 'Error');
  data.addColumn('number', 'Warning');
  data.addRows([
    [new Date('12/01/2016'), 'RE-LINK|',  266, 2136, 472],
    [new Date('12/01/2016'), 'UPDATE-IB',  0, 1722, 2728],
    [new Date('12/01/2016'), 'UPDATE-SA',  0, 43580, 87713],
    [new Date('12/01/2016'), 'CREATE-IB/SA', 0, 18920, 103690],
    [new Date('12/01/2016'), 'TERMINATE-IB',  0, 2, 0],
    [new Date('12/01/2016'), 'TERMINATE-COVERAGE',  3682, 5917, 0],
    [new Date('12/01/2016'), 'ADD-CVG / CHG-SITE',  1101, 2433, 7887],
    [new Date('12/01/2016'), 'day1--CREATE-IB',  36647,  0,1064]
  ]);
   data.addRows([
    [new Date('12/02/2016'), 'RE-LINK',  11649, 221,    1127],
    [new Date('12/02/2016'), 'UPDATE-IB',  0,   4844,   79886],
    [new Date('12/02/2016'), 'UPDATE-SA',  0, 2961, 7377],
    [new Date('12/02/2016'), 'CREATE-IB/SA', 0, 3993,   13268],
    [new Date('12/02/2016'), 'TERMINATE-IB',  4105, 0, 0],
    [new Date('12/02/2016'), 'TERMINATE-COVERAGE',  1844, 10834, 0],
    [new Date('12/02/2016'), 'ADD-CVG / CHG-SITE',  218, 717,    10498]
  ]);
   data.addRows([
    [new Date('12/03/2016'), 'RE-LINK',  3484,  3,  28],
    [new Date('12/03/2016'), 'UPDATE-IB',  0, 139207,   238037],
    [new Date('12/03/2016'), 'UPDATE-SA',  0, 3, 3],
    [new Date('12/03/2016'), 'CREATE-IB/SA', 0, 4598,   12680],
    [new Date('12/03/2016'), 'TERMINATE-COVERAGE',  480,  1210,   90],
    [new Date('12/03/2016'), 'ADD-CVG / CHG-SITE',  1,   72, 2372]
  ]);
  data.addRows([
    [new Date('12/04/2016'), 'RE-LINK',  7142,  465,    1427],
    [new Date('12/04/2016'), 'UPDATE-IB',  0, 105719,   216275],
    [new Date('12/04/2016'), 'UPDATE-SA',  0, 14761,    31698],
    [new Date('12/04/2016'), 'CREATE-IB/SA', 0, 5071,   14184],
    [new Date('12/04/2016'), 'TERMINATE-IB',  18, 10, 0],
    [new Date('12/04/2016'), 'TERMINATE-COVERAGE',  5265, 1280,   98],
    [new Date('12/04/2016'), 'ADD-CVG / CHG-SITE',  1173,    12474,  15545]
  ]);

  var view = new google.visualization.DataView(data);
  view.hideColumns([0]);

  var options = {
    chartArea: {
      height: 300,
      left: 60,
      top: 60
    },
    colors: ['#00ff00', '#ff0000','#ffe102'],
    hAxis: {
      title: '',
      textStyle: {
        color: '#01579b',
        fontSize: 10,
        fontName: 'Arial',
        bold: true,
        italic: true
      },
      titleTextStyle: {
        color: '#01579b',
        fontSize: 12,
        fontName: 'Arial',
        bold: false,
        italic: true
      },
      slantedTextAngle: 90
    },
    height: 600,
    legend: {
      position: 'top'
    },
    title: 'Applications status biz process wise(4 Days)',
    vAxis: {
      title: '',
      textStyle: {
        color: '#1a237e',
        fontSize: 12,
        bold: true
      },
      titleTextStyle: {
        color: '#1a237e',
        fontSize: 12,
        bold: true
      }
    },
    width: 1600
  };

  var formatDate = new google.visualization.DateFormat({
    pattern: 'dd-MMM-yy'
  });

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

  google.visualization.events.addListener(chart, 'ready', function () {
    var rowIndex = -1;
    var dateValue = null;
    var svgParent = container.getElementsByTagName('svg')[0];
    var labels = [];
    Array.prototype.forEach.call(container.getElementsByTagName('text'), function(text) {
      var groupLabel;
      // find hAxis labels
      if (text.hasAttribute('transform')) {
        rowIndex++;
        if (dateValue !== formatDate.formatValue(data.getValue(rowIndex, 0))) {
          dateValue = formatDate.formatValue(data.getValue(rowIndex, 0));
          groupLabel = text.cloneNode(true);
          groupLabel.removeAttribute('transform');
          groupLabel.removeAttribute('font-style');
          groupLabel.setAttribute('fill', '#333333');
          groupLabel.setAttribute('y', parseFloat(text.getAttribute('y')) + 132);
          groupLabel.textContent = dateValue;
          text.parentNode.appendChild(groupLabel);
          if (labels.length > 0) {
            setLabelX(labels[labels.length - 1], text, 0);
          }
          labels.push(groupLabel);
          addGroupLine(groupLabel, -24, -144);
        }
        if (rowIndex === (data.getNumberOfRows() - 1)) {
          if (labels.length > 0) {
            setLabelX(labels[labels.length - 1], text, 16);
          }
          addGroupLine(text, 18, -12);
        }
      }
    });

    // center group label
    function setLabelX(prevLabel, curLabel, xOffset) {
      prevLabel.setAttribute('x',
        parseFloat(prevLabel.getAttribute('x')) + xOffset +
        ((parseFloat(curLabel.getAttribute('x')) - parseFloat(prevLabel.getAttribute('x'))) / 2)
      );
    }

    // add group line
    function addGroupLine(text, xOffset, yOffset) {
      var parent = container.getElementsByTagName('g')[0];
      var groupLine = container.getElementsByTagName('rect')[0].cloneNode(true);
      groupLine.setAttribute('x', parseFloat(text.getAttribute('x')) + xOffset);
      groupLine.setAttribute('y', parseFloat(text.getAttribute('y')) + yOffset);
      groupLine.setAttribute('width', '0.8');
      groupLine.setAttribute('height', '188');
      groupLine.setAttribute('stroke', '#333333');
      groupLine.setAttribute('stroke-width', '1');
      groupLine.setAttribute('fill', '#333333');
      groupLine.setAttribute('fill-opacity', '1');
      parent.appendChild(groupLine);
    }
  });

  chart.draw(view, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="container"></div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌折线图 X 轴上有双标签 的相关文章

  • 将 Google 图表导出到 Excel

    需要将 Google 图表导出到 Excel 中 有没有办法通过jquery达到同样的效果 从 Google Chart 文档中 我了解到可以通过获取 ImageURI 将图表转换为图像 但是 当尝试使用 ImageURI 导出图像时 请参
  • 来自 Google 的带有 Charts API 示例的 GWT 无法正常工作

    我已经下载了在 GWT 中使用图表所需的 jar 附带的存档 存档中还有示例应用程序 http gwt google com samples hellovisualization 1 1 0 HelloVisualization html
  • 以编程方式旋转 Google 可视化数据表

    我兴奋地这把小提琴 http jsfiddle net asgallant HkjDe 我尝试参考那个小提琴创建相同的类型 我修改后的样本给出在here http jsfiddle net DUn6B 我正在尝试创建一个视图 如下所示 va
  • gvisScatterChart 动态定义系列

    我正在动态创建几个gvisScatterCharts 我想定义每条线的颜色 我可以使用系列和颜色属性来完成 没有什么比订单或固定数字更能让我预先定义颜色的了 所以我想创建一个与我的颜色平行的属性数组 并将其放在series myColors
  • Google Charts API:直方图,如何融合条形图并将 x 刻度更改为整数

    我正在使用 Google Chart API 创建直方图 并希望修改条形图以与旁边的条形融合 并将 xticks 更改为整数 问题 我该如何执行以下操作 将这些条与旁边的条融合在一起 使 h x 刻度显示为ints 电流输出 理想输出 相关
  • 设置 google.visualization.DataTable 的列宽

    我想更改 google visualization DataTable 中列的宽度 但是我不知道该怎么做 Fiddler https jsfiddle net dgbh6sL0 1 https jsfiddle net dgbh6sL0 1
  • 在 Google 可视化中单击按钮后绘制图表

    我试图弄清楚如何在单击按钮后绘制图表 我的代码似乎有问题 我使用 Google 可视化和 Javascript 来完成此活动 有人可以看一下吗 CODE
  • Google 图表 - 当值为零时不显示点

    我正在使用 Google Charts 来显示一些时间序列数据 如下所示 通常 数据中零值的比例很高 因此您会在 x 轴上得到很多点 我认为这使得图表看起来很混乱 我不想显示 y 0 的点 非常感谢任何想法 指示 Thanks ct 最好的
  • 即时刷新 Google 可视化

    我目前正在通过谷歌可视化创建谷歌图表 我希望能够通过单击按钮刷新 更新此图表 我尝试了很多不同的方法来做到这一点 但没有一个有效 所以我正在寻找任何人都可以提出的建议 我当前的平台是 ASP net 使用 C 而 google 的东西是用
  • 谷歌图表趋势线未显示

    我有一个 Google 图表折线图 我想在其上显示趋势线 但它没有显示 数据是从数据库中获取的 而 JavaScript 是由 PHP 生成的 但生成的 JavaScript 如下所示
  • 如何在 Google Charts 中获取带有 svg 内图像的 png(base64)?

    如何获取 svg 内图像的 base64 检查这个Fiddle http jsfiddle net R8A8P 51 这是我从另一个问题中得到的 如果您看到第二个图形 则它不会生成覆盖该条的图像 var chart new google v
  • 给单元格着色 Google Chart - 散点图

    我在我的一个项目中使用谷歌图表 我需要使用以下代码为谷歌散点图中的一组单元格着色 我在用google visualization arrayToDataTable用于处理数据 以下是我的代码 div div
  • Google Charts:折线图和柱形图之间的切换

    我有一个仪表板 其中包含一些 Google Analytics 指标 我想在每日 每月和每周图表上绘制这些指标 日线图为折线图 其他为柱形图 我能够将图表最初绘制为折线图或条形图 然后将其重新绘制为不同类型 但之后它不会再次重新绘制 这是我
  • Google 图表调用 onmouseover 事件

    我一整天都在研究这个问题 但没有成功 我有一个显示一些数据的谷歌图表 工作得很好 我一直在研究更详细的图表 包括大约十几个图表图例项目 我想在图表下方显示我的图例 因此我将其位置设置为底部 但图表生成的 丑陋 分页对我的经理来说并不真正有吸
  • 谷歌图表显示的是金钱而不是百分比

    给定饼图的数据 data new google visualization arrayToDataTable Sales Revenue Distribution Author 5 Company 2 Tax 0 4 Payment Pro
  • Google 图表 - “缺少请求 ID 的查询:0”

    仅当我尝试将两个图表放在同一页面上时才会出现此错误 如果这两个图表是页面上唯一的图表 则它们可以完美地工作 在我添加第二个的那一刻 仅加载第一个 并且出现 缺少请求 id 的查询 0 错误 这是我的图表 js 文件 function dra
  • 谷歌折线图:如何添加单位?

    https google developers appspot com chart interactive docs gallery linechart Example https google developers appspot com
  • 谷歌可视化将 0 轴与两个不同的 y 轴对齐

    我正在创建一个组合图 https developers google com chart interactive docs gallery combochart与谷歌的可视化库 我正在绘制商店一天内的客流量和收入图表 我已将抽奖选项设置为
  • 使用chartJS显示带有连接点的折线图

    我想使用 ChartJS 绘制这样的图表 但我找不到连接第一个和最后一个点并在该连接区域内显示单个唯一点的解决方案 我还需要用不同的颜色设置每个点的样式 我尝试探索 ChartJS 文档但找不到解决方案 是否有任何图表绘制库具有这些功能或如
  • Charts_flutter x 轴上的标签/文本相互重叠

    我使用flutter中的charts flutter包渲染条形图 但 x 轴上的域标签相互重叠 我有办法解决这个问题吗 有没有办法倾斜文本或增加图表的宽度 使其可以水平滚动 我尝试过寻找任何解决方案 例如 labelspecs 但无法找到解

随机推荐

  • Winforms:平滑面板的圆角边缘

    我已关注本教程以创建圆形面板 本教程中的代码是用 vb 编写的 但我能够将其转换为 C 所以这是我的代码 public class SPanel Panel Pen pen float penWidth 2 0f int edge 20 C
  • Cordova / Phonegap 获取设备的电话号码(Android 和 iOS)

    是否可以使用 Phonegap Cordova 开发混合移动应用程序并访问 Android 和 iOS 设备的电话号码 iOS 您可以使用 CoreTelephony 框架检索电话号码 您需要添加以下权利 com apple coretel
  • 转置查询输出

    我有一个正常的选择查询 其结果如下输出 select cid x1 x2 x3 x4 fy from temp table cid x1 x2 x3 x4 fy 6657 100 0 0 200 2014 6658 300 0 0 400
  • 如何将十六进制字符串转换为十进制

    当我尝试这个时 Decimal m Decimal Parse columns 1 System Globalization NumberStyles AllowHexSpecifier 我收到一个 ArgumentException 这么
  • 无法通过terraform中的ARM模板将API连接到逻辑应用程序

    在我的 terraform 中 我在 ARM 模板的帮助下创建了一个逻辑应用程序及其工作流程 逻辑应用中使用的 2 个连接也是通过 ARM 模板创建的 但不知何故 即使资源是在 Azure 中创建的 但是当我到达逻辑应用程序时 我总是必须手
  • 是否可以使用 FileSystemWatcher 识别哪个进程正在更改文件?

    是否可以使用 FileSystemWatcher 查找正在更改文件的 PID 或进程名称 不 您需要一个文件系统过滤器驱动程序来跟踪此类详细信息的更改
  • Winforms:有没有办法在我的应用程序中打开表单时收到通知?

    我的主窗体上有一个 切换到窗口 按钮 我希望仅当其他窗口 在我的应用程序中 打开时才启用该按钮 每当打开或关闭表单时 是否会引发某种我的主表单可以挂钩的事件 例如 也许某种方式可以跟踪 Application OpenForms 何时发生更
  • Linux - 将命令的 STDOUT 发送到 RSS Feed

    我希望使用个人 RSS 源进行系统报告 所以我想知道是否可以创建一个脚本将其 1 发送到 RSS 源 alaself test command gt rss report sh 我目前也没有设置 RSS 提要 那么设置从 Linux 机器运
  • PermGen 实际上代表什么?

    我知道 PermGen 是什么 它的用途是什么 为什么会失败 如何增加它等等 我不知道 PermGen 到底代表什么 永久 Gen 什么东西 有谁知道 PermGen 到底代表什么 永久一代 细节当然是特定于实现的 简而言之 它包含与类和内
  • 为什么我的 Python 代码会出现“未定义”错误?

    如果变量 key 返回到解密函数中 为什么它无法被识别 错误显示 NameError 全局名称 key 未定义 以下是代码 alphabet abcdefghijklmnopqrstuvwxyz alphaList list alphabe
  • 使用规则插入辅助表自动增量序列

    要自动在第二个表中添加列以通过唯一索引将其绑定到第一个表 我有如下规则 CREATE OR REPLACE RULE auto insert AS ON INSERT TO user DO ALSO INSERT INTO lastlogi
  • 如何在 R Shiny 中实现清理例程?

    例如 我的闪亮应用程序可能会打开数据库连接 server R db lt dbConnect SQLite DB PATH shinyServer things involving db 现在 如何确保连接db已正确关闭 通过dbDisco
  • 使用 python 渲染 Latex 文本

    我正在尝试用 python 渲染 Latex 文本 这就是我试图做的 import matplotlib pyplot as plt txte r The emph characteristic polynomial chi lambda
  • 使用 Android Q 拒绝 AndroidAudioConverter 权限

    Android Q 引入了一些有关文件夹 文件权限的重大更改 在 Android 上使用转换器时出现以下错误 java io IOException 无法运行程序 data user 0 com ltcfastpay timecard de
  • 使用请求的响应时间极长

    描述 我有一个运行 Python 应用程序的 AWS ec2 实例 ubuntu 16 其中我调用了一些 Facebook Account Kit API 和 Google Play Store API 它们都工作得很好 直到我两周前重新启
  • 如何从表格单元格(td)中获取相应的表格标题(th)?

    给定下表 我如何获取每个 td 元素对应的表头 table thead tr th Name th th Address th tr thead tbody tr td Bob td td 1 High Street td tr tbody
  • Golang 中的类型转换

    我正在阅读以下文章 https www ribice ba golang enums 代码示例之一中定义了一个函数 func lt LeaveType UnmarshalJSON b byte error Define a secondar
  • 用于文本选择控件的自定义浮动工具栏

    我想自定义选择文本时出现的浮动工具栏 这是标准浮动工具栏的示例 你知道我如何定制它 比如添加粗体 斜体 吗 有外部图书馆吗 Monospace 应用程序正是我想要的 您将向清单中的活动添加一个意图过滤器
  • Flask Postgresql 数组不会永久更新

    我正在开发一个使用 Flask 和 PostgreSQL 数据库以及 SQLAlchemy 的项目 I have Group具有以下列表的对象User属于该组成员的 ID 由于某种原因 当我尝试将 ID 添加到组时 它无法正确保存 如果我尝
  • 谷歌折线图 X 轴上有双标签

    我正在研究谷歌折线图 我想在 x 轴上加双标签 日期明智的过程 我可以使用下面的代码绘制没有日期的图表 但无法填充日期 div style width 100 height 1 div