谷歌折线图:线向下时改变颜色

2023-12-05

https://developers.google.com/chart/interactive/docs/gallery/linechart

大家好,我想知道有没有办法改变线条向下移动时的颜色。我用谷歌搜索但找不到任何东西。

例如,折线图向上移动,只要图表线向下倾斜就可以了,向下的应该只显示红色。如果之后它向上移动,那么向上的线不应该是红色的。

这是我试图获取的屏幕截图:https://i.stack.imgur.com/8ZLc0.jpg

如果有人知道这个请帮助我

这是我现在正在做什么的代码:

function draw_chart(chart_data, id, action)
{
    var url = base_url + "controller/function/" + id ;
    statData = getAjax(url, '', false, 'json');
    minimum = '';
    maximum = '';
    upside = '';

    if (statData.min) {
        minimum = statData.min;
    }
    if (statData.max) {
        maximum = statData.max;
    }
    if (statData.upside == '1') {
        upside = -1;
    }

    value = $("#value_" + id).val();
    var name = $('#name_' + id).val();
    var names = [];
    if (value == 2) {
        var names = name.split('/');
    } else {
        names[0] = name;
    }
    title = $("#name_" + id).val();
    google.load('visualization', '1.1', {packages: ['line', 'corechart']});
    format = $("#format-select_" + id + " option:selected").val();

    if (statData.row[0].type == 'currency') {
        format = '$#';
    } 
    var options = {
        title: title,
        width: 820,
        height: 500,
        titlePosition: 'none',
        legend: 'none',
        lineWidth: 3,
        annotation: {
            0: { style: "line"},
            1: { style: "line"}
        },
        series: {0: { style: "area"} , 1: {type: "area"}},    
        animation: {duration: 1000, easing: 'in'},
        strictFirstColumnType: true,
        fontColor: "#333333",
        fontSize: "12px",
        colors: ["#5AA023", "#3F5F9F" , ""],
        pointSize: 6,
        fontSize: 11,
        enableEvents: true,
        forceIFrame: false,
        tooltip: {showColorCode: false, },
        vAxis: {
                gridlines:{color: "#E6E6E6"},
                textStyle:{color: "#666666"}, 
                baselineColor: "#CACACA", 
                format: format,
                viewWindow:{
                    min: minimum,
                    max: maximum
                },
                direction: upside,                
            },
        hAxis: {gridlines:{color: "#E6E6E6" , count:chart_data.length}, 
                baselineColor: "#CACACA",  
                textStyle:{color: "#666666"}, 
                format: "MMM dd yyyy",
                textPosition: "out", 
                slantedText: true,
                },
        chartArea: {height: 420, width: 750, top: 14, left: 45, right: 0}
    };
    if (action && action == "update") {
        //alert(action);
    }
    else {

            var chart_div = document.getElementById('chart'+id);
            var chart_div1 = document.getElementById('chart1'+id);

            var  chart = new google.visualization.LineChart(chart_div);
            google.visualization.events.addListener(chart, 'select', clickHandler);

            data = new google.visualization.DataTable();
            data.addColumn('string', 'Season Start Date');
            data.addColumn({type: 'string', role: 'annotation'});
            data.addColumn('number', names[0].trim());

            if (value == 2) {
                data.addColumn('number', names[1].trim());
                for (i = 0; i < chart_data.length; i++)
                    data.insertRows(0, [[new Date(chart_data[i].date), parseInt(chart_data[i].val), parseInt(chart_data[i].val1)]]);
        }
        else {
                for (i = 0; i < chart_data.length; i++) {
                    if (!chart_data[i].quarter) {
                        date = chart_data[i].date.split('-');
                        month = getMonthName(date[1]);
                        day = date[2];
                        year = date[0];
                        data.insertRows(0, [[month+' '+day+' '+year , '.' , parseInt(chart_data[i].val) ]]);
                    } else {
                        data.insertRows(0, [[chart_data[i].quarter , '.' , parseInt(chart_data[i].val) ]]);
                    }
                }    
        }
    }
}
if (statData.row[0].type == 'currency') {
    var formatter = new google.visualization.NumberFormat({prefix: '$'});
    formatter.format(data, 1);
} 
    var dataView = new google.visualization.DataView(data);
  dataView.setColumns([
    // reference existing columns by index
    0, 1,
    // add function for line color
    {
      calc: function(data, row) {
        console.log("ok world!");
        var colorDown = '#0000FF';
        var colorUp = 'green';

        if ((row === 0) && (data.getValue(row, 1) < data.getValue(row + 1, 1))) {
          return colorDown;
        } else if ((row > 0) && (data.getValue(row - 1, 1) < data.getValue(row, 1))) {
          return colorDown;
        }
        return colorUp;
      },
      type: 'string',
      role: 'style'
    }
  ]);
    chart.draw(dataView, options);

use a DataView and setColumns提供确定线方向的函数
并返回适当的线条颜色

请参阅以下工作片段...

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

function drawLineColors() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'X');
  data.addColumn('number', 'Y');
  data.addRows([
    [0, 2000],
    [3, 1700],
    [6, 1400],
    [9, 2500],
    [12, 3000],
    [15, 4700],
    [18, 2200],
    [21, 1500],
    [24, 1200],
    [27, 1800],
    [30, 2600],
    [33, 2800],
    [36, 3000],
    [39, 2300],
    [42, 2000],
    [45, 4000]
  ]);

  var options = {
    curveType: 'function',
    height: 200,
    legend: {
      position: 'top'
    }
  };

  var dataView = new google.visualization.DataView(data);
  dataView.setColumns([
    // reference existing columns by index
    0, 1,
    // add function for line color
    {
      calc: function(data, row) {
        var colorDown = '#0000FF';
        var colorUp = '#FF0000';

        if ((row === 0) && (data.getValue(row, 1) < data.getValue(row + 1, 1))) {
          return colorDown;
        } else if ((row > 0) && (data.getValue(row - 1, 1) < data.getValue(row, 1))) {
          return colorDown;
        }
        return colorUp;
      },
      type: 'string',
      role: 'style'
    }
  ]);

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

谷歌折线图:线向下时改变颜色 的相关文章

  • 使用 moment.js 和 setInterval 动态日期和时间

    我试图找出如何使用显示动态日期和时间moment js http momentjs com 显然我无法弄清楚如何正确使用 setInterval 如果可能的话 我不想使用 jQuery 因为 moment js 不需要它 这是我到目前为止所
  • 继续使用 sketch.js 编辑草图图像 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 sketch js 中的示例 http intridea github io sketch js http intridea g
  • 为什么电子邮件正文给出不同的输出?

    我正在尝试触发来自 Google 应用程序脚本的电子邮件 const body HtmlService createHtmlOutput A b new task b have been added to the Task Manager
  • EJS.JS ReferenceError:标题未定义

    我遇到了 Express 脚本的问题 我正在调用一个在另一个函数成功时呈现视图的函数 在这个项目中 我使用 Angular Node Express 和 ejs 作为视图引擎 当我渲染视图时 不幸的是我收到以下 ejs 错误 Referen
  • jquery(或纯js)模拟按下回车键进行测试

    模拟用户按 enter 键的最佳方法是什么 element keypress 似乎不允许我传递按下的实际键 这是用于单元测试的 演示在这里 http jsfiddle net 3xTM2 var e jQuery Event keypres
  • Scrapy Splash,如何处理onclick?

    我正在尝试抓取以下内容 我能够收到响应 但我不知道如何访问以下项目的内部数据以抓取它 我注意到访问这些项目实际上是由 JavaScript 和分页处理的 这种情况我该怎么办 下面是我的代码 import scrapy from scrapy
  • 使用 classed("active",true) 鼠标悬停时 D3 颜色变化

    我是 js 和 D3 的新手 我已经生成了某种热图 并且想使用 D3 的 on mouseover 更改图块的颜色 我可以显式更改颜色 但想使用 CSS 活动规则 可能是一些简单的东西可以修复 任何帮助将不胜感激 完整代码如下 Thanks
  • 从请求响应创建 PDF 不适用于 axios,但适用于本机 xhr

    为了强制从服务器下载 PDF 我尝试使用 axios 和本机 xhr 对象 原因是我必须发送post请求 因为我向服务器传递了太多数据 所以带有简单链接的选项 例如site ru download pdf对我不起作用 尽管我最终设法用 Xh
  • 在全局范围内查找 JavaScript 函数

    有没有办法在当前活动的对象模型中搜索 JavaScript 属性 例如命名函数 Firebug 在 DOM 选项卡上显示的内容 我在 Chrome 开发人员工具中找不到直接等效项 加载页面 使用主要浏览器的通用开发人员工具 一个例子是 我搜
  • HTML5 画布在缩放和旋转后平移

    我正在尝试用画布做一些事情 首先 我让用户上传图像 如果图像比我想要的大 我需要将其缩小 那部分工作得很好 最近我们遇到了 iPhone 用户上传图像的问题 这些都存在方向问题 我已经弄清楚如何提取方向 我的问题是当我操纵画布中的图像时会发
  • 正则表达式匹配除括号中的单词之外的所有单词 - javascript

    我使用以下正则表达式来匹配所有单词 mystr replace W s g function match p1 index title 请注意 单词可以包含特殊字符 例如德语变音符号 如何匹配除括号内的单词之外的所有单词 如果我有以下字符串
  • 错误 [ERR_UNSUPPORTED_DIR_IMPORT]:尝试在本地启动 Nodejs 应用程序时导入目录

    我在尝试将我的应用程序部署到 Heroku 时陷入了一个循环 我的进口声明 例如import cors from cors 由于 无法在 Common JS 中加载 ES6 模块 错误 似乎阻止了应用程序在生产环境中启动 在本地运行得很好
  • “调用”C:\Program Files\nodejs\\node.exe”错误

    我一直在尝试安装节点js并安装浏览器同步 C Users Aly gt npm install g browser sync CALL C Program Files x86 nodejs node exe C Program Files
  • Vim、Javascript、DoctorJS (jsctags) 和 Taglist(源代码浏览)

    我已经安装了DoctorJS http doctorjs org 之前jsctags 试图为 Vim 获得一些好的源代码浏览 标签列表 使用Taglist http www vim org scripts script php script
  • 如何在 Yii 框架中使用 jQuery?

    如何在 yii 中使用 jquery javascript 如何在 yii 中使用我的脚本 为什么这与以其他方式使用 jQuery 有什么不同 如何在yii中使用jquery 如上所述 您可以注册新的脚本块 也可以注册新的外部脚本文件 您还
  • Angularjs + Typescript,如何将 $routeParams 与 IRouteParamsService 一起使用

    我使用 routeParams 从 URI 中提取属性并为其设置本地变量 当我使用打字稿输入设置 route 参数的类型时 我无法再访问 route 参数 如何访问 routeParams 中的属性 class Controller con
  • Img src 路径以及要传递的标头参数

    我在 jsp 页面中有一个 img 标记 其中 src 路径需要传递标头参数才能获取图像 我们怎样才能实现它呢 您现在可以使用fetch https developer mozilla org en US docs Web API Fetc
  • 如何检查令牌过期和注销用户?

    当用户单击注销按钮时 他 她可以自己注销 但是如果令牌过期 他 她就无法注销 因为在我的应用程序中 令牌在服务器端和前端都使用 当用户单击注销按钮时 如果令牌有效 则服务器和浏览器中的令牌都会被清除 当用户未注销并且他 她的令牌过期但未在浏
  • 需要在 javascript 中对 ajax 查询进行正确的修剪吗?

    在 JavaScript 中 我想对字符串末尾的所有特殊字符进行正确的修剪 我的一段代码仅对连字符 进行修剪 还需要所有特殊字符 var s DB var x s replace console log x 对此有什么帮助吗 这应该可以解决
  • 检测 JavaScript 代码中的拼写错误

    在Python世界中 使用最广泛的静态代码分析工具之一 pylint has a 特别检查 https stackoverflow com questions 27162315 automated docstring and comment

随机推荐

  • 如何仅在Python中设置模块的日志记录级别?

    我在用logging info输出有关我的脚本正在执行的操作和我正在使用的信息logging basicConfig level logging INFO 启用此功能 和这个 logging basicConfig level loggin
  • 修改Python脚本批量转换目录下所有“WOFF”文件

    我一直在使用 GitHub 用户 hanikesn 见下文 编写的一个很棒的开源 python 脚本 该脚本通过命令行 Mac OS X 上的终端 将单个 WOFF 文件转换回 OTF 格式 现在 我将脚本拖放到终端 然后将 WOFF 文件
  • onActivityResult 中的 requestCode 错误

    我正在从我的片段开始一个新的活动 startActivityForResult intent 1 并希望在 Fragment 的父 Activity 中处理结果 Override protected void onActivityResul
  • 无法使用seaborn绘制双轴

    当我尝试在 jupyter 笔记本中使用 seaborn 绘制双轴图时遇到问题重要提示 该代码在 Python 2 上运行得很好 使用 anaconda 升级到 Python 3 后 我收到以下错误消息 Users enyi opt ana
  • 使用 GROUP 或 RANK 中的 WHERE 的 SQL 语句

    我有一份销售快照 内容大约是35 000 行 我们将这些列称为 Sales Rep Account ID Total Contract Value Date 我需要将所有内容分组Sales Rep然后从那里选择Sales Rep s 排名前
  • Underscore.js _.tap() 函数什么是方法链?

    Underscore js 文档解释说 tap 函数 点击 到方法链中 http underscorejs org tap 我很难遵循他们的例子 chain 1 2 3 200 filter function num return num
  • 如何在客户端导入socket.io - SOCKET.IO + NODE.JS

    我一直在尝试创建一个在线游戏 但是当我尝试使用socket on or socket emit 它会出现一个错误 如下所示socket 我看过一些与此类似的帖子 并尝试了所有解决方案 但没有一个有效 我已经得到了io connect 工作并
  • 导航栏和导航按钮中的单独标题

    嘿嘿 我有一叠UIViewControllers 位于 a 的内部UINavigationController 通常标题 或导航项的标题 决定导航栏中显示的标题 显示在顶部 and所有导航按钮 例如导航栏本身的后退按钮 现在 我计划在导航栏
  • 如何从 iOS 中的 UIMenuController 中删除默认的 UIMenuItem?

    我想从 UIMenuController 中删除一些默认的 UIMenuItem 对象 例如 剪切 复制 等 怎么做 Thanks 对显示菜单的视图进行子类化 例如UIWebView UITextView 并覆盖 canPerformAct
  • 用户设置 - 安卓

    如何使应用程序中的更改持续存在 以便当应用程序重新启动时所有设置保持不变 例如 如果从应用程序中我选择了振动 那么当应用程序未运行时 如果我的手机处于铃声模式 当应用程序重新启动时 它将自身设置为振动 实际上有多种方法可以持久保存更改 这安
  • 使用 jquery 可拖动和可点击的输入元素

    我在可拖动的 div 中有一个输入元素 我的代码应该做以下事情 当我拖动输入元素时 应该拖动整个可拖动 div 已完成 当我单击输入元素时 我应该能够编辑文本 无法完成 那么 有人可以告诉我如何单击和编辑可拖动的输入元素的文本吗 这是我的完
  • WCF 传输安全弱点

    Lowy 撰写的 Programming WCF Services 第二版 第 10 章 第 512 页 Lowy谈到传输安全时说 它的主要缺点是它只能保证点对点的传输安全 这意味着当客户端直接连接到服务时 客户端和服务之间存在多个中介会使
  • Sikulix/Jython UAC 自动化

    我想知道是否有人有幸在安装程序自动化期间通过 UAC 弹出窗口实现自动化 我有一个现有的自动安装程序代码 但由于 Sikuli 在此步骤中未使用键盘 鼠标 它在 UAC 区域失败 有人在这里有运气吗 或者在 Jython 中没有办法做到这一
  • WPF DataGrid HeaderTemplate 神秘填充

    我将一个带有图像的按钮放置在 DataGrid 列的标题中 单元格模板也只是一个带有图像的简单按钮
  • 如何解决“无法实例化 WebApplicationInitializer 类”

    我有一个 CRUD spring 应用程序 由于依赖关系而无法运行 我需要包装上带有 战争 的部分 但无法到达 我的 pom xml 是
  • 如何使用 xmlstarlet 选择和编辑 xml 节点?

    这里我选择节点 xmlstarlet sel t c configuration property name http agent name value conf nutch default xml
  • 是否有用于 ID3 元数据的 Perl 或 Python 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 基本上 我有一堆从我兄弟的 iPod 上下载的音乐文件 它们保留了元数据 但 iPod 似乎喜欢将它们存储在那些绝对可怕的四个字符名称下 我想我应该编写一个漂亮 快速的脚本来按照我的
  • 如何通过 XAML 中的样式重用项目子项?

    我有一个 WPF 子菜单 我想在 XAML 中的几个地方重用它 这是八张合集
  • 检测点是在 raphael.js 形状的内部还是外部

    我有一个 raphael js 形状 我正在其上绘制圆圈 我只希望当圆没有超出其所绘制的形状的边界时出现一个圆 为了更清楚地说明这一点 以下是我不希望发生的情况的示例 示例http img682 imageshack us img682 4
  • 谷歌折线图:线向下时改变颜色

    https developers google com chart interactive docs gallery linechart 大家好 我想知道有没有办法改变线条向下移动时的颜色 我用谷歌搜索但找不到任何东西 例如 折线图向上移动