如何根据标签更改 Chart.js 点的颜色

2023-11-24

我有一个 Chart.js 折线图,其中标签是星期几。我想根据具体日期(周一至周日)更改点背景。我可以根据数据值更改背景颜色,但这不是我需要的。相反,我想给每一天(标签)一个不同的色点。

enter image description here

例如,这就是我如何根据数据值更改点(不是我需要的)

chartData: {
    labels: ['Monday', 'Tuesday', 'Wednesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],

    datasets: [{
        data: [57, 569, 12, 78, 569, 0, 5],
        fill: true,
        pointRadius: 4,
        pointBackgroundColor: function(context) {
            var index = context.dataIndex
            var value = context.dataset.data[index]
            return value > 100 ? 'green' : 'red'
        }
    }]
},

但是当我尝试将其应用于标签时,出现错误:

类型错误:无法读取 pointBackgroundColor 处未定义的属性“0”

chartData: {
    labels: ['Monday', 'Tuesday', 'Wednesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'],

    datasets: [{
        data: [57, 569, 12, 78, 569, 0, 5],
        fill: true,
        pointRadius: 4,
        pointBackgroundColor: function(context) {
            var index = context.dataIndex;
            var value = context.labels[index];

            if (value == 'Monday') return 'green'
            if (value == 'Tuesday') return 'red'
            if (value == 'Wednesday') return 'blue'
        }
    }]
},

您可以为 pointBackgroundColor 属性提供一个颜色数组:

var ctx = document.getElementById('lineChart').getContext('2d');

var colors = ["rgba(255,0,0,1)", "rgba(0,255,0,1)", "rgba(0,0,255,1)", "rgba(255,0,0,1)", "rgba(0,255,0,1)"];
var colors1 = Object.assign([], colors);
colors1.sort();
var data = {
  labels: [
    "1 ",
    "2 ",
    "3 ",
    "4 ",
    "5 ",
  ],
  datasets: [{
    label: "line 1",
    strokeColor: "rgba(151,187,205,1)",
    pointRadius: 5,
    pointBackgroundColor: colors,
    fill: false,
    data: [
      0.33771896,
      0.903282737,
      0.663260514,
      0.841077343,
      0.172840693,

    ],
  }, {
    label: "Average",
    strokeColor: "rgba(245, 15, 15, 0.5)",
    pointBackgroundColor: colors1,
    pointRadius: 5,
    fill: false,
    data: [0.70934844,
      0.562981612,
      0.496916323,
      0.410302488,
      0.55354621
    ]
  }]
};

var options = {
  datasetFill: false,
}
var myChart = new Chart(document.getElementById("lineChart"), {
  type: 'line',
  data,
  options
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script>
<div>
  <canvas id="lineChart" width="600" height="200"></canvas>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据标签更改 Chart.js 点的颜色 的相关文章

随机推荐

  • “无法重现”——Java 确定性多线程可能吗?

    是否可以以确定性方式运行多线程 Java 应用程序 我的意思是在我的应用程序的两次不同运行中始终具有相同的线程切换 原因是每次运行时都在完全相同的条件下运行模拟 类似的情况是 当使用随机数生成器时给出一些任意种子以获得始终相同的 随机 序列
  • Rshinydashboard动态菜单选择

    我在 R闪亮仪表板中创建了动态 sibebar 菜单 即使我使用selected TRUE 在此动态模式下启动时不会选择与菜单关联的菜单项 如何确保我可以控制在这种动态模式下启动时显示哪个 menuItem 的内容 我一直在搜索类似的帖子
  • 如何强制 WebKit 重绘/重绘以传播样式更改?

    我有一些简单的 JavaScript 来实现样式更改 sel document getElementById my id sel className sel className replace item 1 9 selected item
  • 关于 Apple 的 LazyTableImages 示例的问题 - 行为与应用程序商店不完全相同

    我有一个带有项目列表的 UITableView 每个项目都有自己的图像 我认为 Apple 的 LazyTableImages 示例项目非常适合学习 并用于在检索原始列表数据后实现异步下载图像的同类过程 在大多数情况下 它运行得很好 除了我
  • 在控制器中执行操作的 Rails 3 链接或按钮

    在 RoR 3 中 我只想有一个链接 按钮来激活控制器中的某些操作 方法 具体来说 如果我单击页面上的 update specs 链接 它应该转到我的产品控制器中的 update specs 方法 我在此网站上找到了执行此操作的建议 lin
  • 如何比较一个字符来检查它是否为空?

    我尝试了下面的方法 但是 Eclipse 抛出了一个错误 while s charAt j null 检查字符是否是的正确方法是什么null 检查是否String s is not null在进行任何字符检查之前 返回的字符String c
  • 学说迁移,使用自定义学说类型的问题

    我正在使用 Symfony2 Doctrine2 构建一个应用程序 我的应用程序需要存储地理空间数据 因此我编写了适当的学说扩展 一切都运行得很好 并且该应用程序已经在生产环境中运行了很长时间 现在我必须添加一些新功能 并且需要更新数据库而
  • MVC DateTime 验证 - 英国日期格式

    我有一个简单的视图 其中包含两个日期字段 并添加了 ValidationMessageFor 控件以进行不显眼的 JavaScript 验证 我的问题是 当格式正确时 dd MM yyyy 我总是被告知我的日期无效 我已经添加了
  • IIS7 - 在 ASP 中指定内容长度标头会导致“连接重置”错误

    我正在将一系列网站从现有的 IIS5 服务器迁移到全新的 IIS7 Web 服务器 其中一个页面从数据库中的 blob 中提取数据文件并将其提供给最终用户 Response ContentType rs contentType Respon
  • 可以使用 Fetch API 作为请求拦截器吗?

    我尝试在每次使用 Fetch API 向服务器发出请求后运行一些简单的 JS 函数 我已经搜索过这个问题的答案 但没有找到任何答案 可能是因为 Fetch API 相对较新 我一直在这样做XMLHttpRequest像这样 function
  • 如何将准备好的语句与 PHP 事务结合使用?

    我的目标是同时使用事务和准备好的语句 以实现数据完整性和防止 SQL 注入 我有这个 try cnx new PDO dsn dbuser dbpass cnx gt setAttribute PDO ATTR ERRMODE PDO ER
  • 对象属性赋值与解构?

    我想用ES6 解构分配对象的属性 但无法弄清楚语法 var dst already in existence with its own props methods etc var src a foo b bar c baz dst a sr
  • 图像变换会产生红色图像?

    我正在尝试通过水平翻转图像并调整其大小来转换图像 问题是 当转换完成后 图片的颜色都很奇怪 它已经变成了微红色调 是否有可能以某种方式解决这个问题 我想我在某处读到这可能是 AWT 库中的一些错误 但我不确定 这是代码 import jav
  • 模板内类型名分配的目的是什么

    我遇到过这段代码 我试图包含所有详细信息 以防我遗漏某些内容 template lt typename TYPE TYPE with an arbitrarily long name typename KIND KIND with an a
  • 斯康斯。使用 Glob 进行递归

    我使用 scons 几天了 有点困惑 为什么没有内置工具用于从给定根开始递归构建源 让我解释 我有这样的源码配置 src Core folder1 folder2 subfolder2 1 Std folder1 等等 这棵树可能更深 现在
  • mysql 中的文本索引与整数索引

    无论如何 我一直尝试在表上使用整数主键 但现在我怀疑这是否总是必要的 假设我有一个产品表 每个产品都有一个全球唯一的 SKU 编号 这将是一串 8 16 个字符的字符串 为什么不把这个作为PK呢 通常 我会将此字段设为唯一索引 但随后使用自
  • 在php中调整图像的透明度

    我已经仔细研究了在调整 png 大小时如何正确管理 alpha 我设法让它保持透明度 但仅限于完全透明的像素 这是我的代码 src image imagecreatefrompng file dir this gt file name ds
  • C++20 中的指定初始值设定项

    我有一个关于 c 20 功能之一的问题 指定初始化程序 有关此功能的更多信息here include
  • 请求在 v2.3 API 中获取 Facebook 页面点赞总数

    以前我为此使用 FQL 但从 v2 1 开始已弃用 我将使用图形边缘 likes 转向 v2 3 这是我的网址 https graph facebook com v2 3
  • 如何根据标签更改 Chart.js 点的颜色

    我有一个 Chart js 折线图 其中标签是星期几 我想根据具体日期 周一至周日 更改点背景 我可以根据数据值更改背景颜色 但这不是我需要的 相反 我想给每一天 标签 一个不同的色点 例如 这就是我如何根据数据值更改点 不是我需要的 ch