Chart.js​如何在多个聊天中同步平移和缩放

2024-01-05

我想在多个图表上同步平移和缩放。 我一直在使用 Chart.js 和 Chartjs-plugin-zoom。

Chartjs-plugin-zoom 使用 unZoom 回调函数调用事件。那么,X轴两端的值就是用回调函数这样获取的。

onZoom: function () {
    var minVal = myChartA.getDatasetMeta(0).dataset._scale.chart.scales['x-axis-0']._table[0].time;
    var maxVal = myChartA.getDatasetMeta(0).dataset._scale.chart.scales['x-axis-0']._table[1].time;

    leftEnd = minVal;
    rightEnd = maxVal;

    updateChart();
}

然后使用 updateChart 函数更新图表。

我认为其他图表应该用updateChart函数获得的X轴两端的值来更新。 使用 Chart.helpers.each 调用 update() 来更新所有图表。

function updateChart() {
    Chart.helpers.each(Chart.instances, function (instance) {
        instance.oprions = {
            scales: [{
                xAxes: {
                    time: {
                        min: leftEnd,
                        max: rightEnd
                    }
                }
            }]
        };
        instance.update();
    });
}

然而,并没有得到预期的结果。 Zoom-PAN 仅反映所操作的海图。

我认为 onZoom 回调函数获取 X 轴的两个边缘,并每帧更新图表。 图表只能使用选项进行更新,因此 Chart.helpers.each 可用于一次更新所有图表。如果要更新的X轴两端都是全局变量,则所有图形都可以被引用。

这个方法不正确吗? 选项更新方法是否错误?是不是更新时间不对?


UPDATE

我通过参考找到了如何更新图表https://www.chartjs.org/docs/latest/developers/updates.html https://www.chartjs.org/docs/latest/developers/updates.html.

实际上,多个图表的 X 轴刻度范围已经改变,但 max 缩放并再次停止工作。

原因是没有更新参考。 什么是 ? 示例代码写为“需要更新参考”作为注释。 什么意思?

示例代码调用如下:

xScale = chart.scales['newId'];

“newId”被重新分配为秤 ID。

但我的是比例的最小值和最大值。 如何??

JSFillde https://jsfiddle.net/Fairlight/h2Lx9bmw/16/#


我想出了如何做到这一点。如果我知道的话也没什么大不了的。

回调函数 updateChart() 应该是这样的:

        function updateChart() {
            Chart.helpers.each(Chart.instances, function (instance) {
                instance.options.scales.xAxes[0].time.min = leftEnd;
                instance.options.scales.xAxes[0].time.max = rightEnd;              
                instance.update();
            });
        }

要点是我的数据是时间序列数据,因此比例选项应该使用“时间”。

JSFillde https://jsfiddle.net/Fairlight/h2Lx9bmw/33/已更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chart.js​如何在多个聊天中同步平移和缩放 的相关文章

随机推荐

  • ELF 格式操作

    我有一个要求 我想关联一个index与一个文件 以某种格式 我想知道我是否可以进行任何 ELF 操作 并且仍然确保保持一致性 以便该文件在 Linux 上正常工作 这里的想法是创建一种文件格式 可以通过某个 API 自定义 查询该文件格式以
  • GWT - 如何在超级开发中查看java异常堆栈跟踪?

    我正在使用 GWT Super Dev 并在 Chrome 中激活了源映射 尽管我可以在 源 选项卡中看到 Java 类 但我不知道如何查看未处理异常的完整堆栈跟踪 那么我该怎么做呢 有一个悬而未决的问题 http code google
  • 给定一个数组 [a1b2c3d4] 转换为 [abcd1234]

    限制条件 O 1 空间 准时 这不是一个家庭作业问题 只是我遇到的一个有趣的问题 以下是我能想到的一些解决方案 但在给定的限制下没有任何解决方案 Method 1 具有 O n 内存 递归地将数组分为两部分 继续划分直到每个子问题的大小 对
  • 是否可以构建一个交互式 C shell?

    我只是想知道这是否可以使用 Python Java 或 C 我正在寻找类似 IPython for Python 的东西 是的 这样的东西已经存在 你只需要用谷歌搜索即可 Ch http en wikipedia org wiki Ch i
  • 如何在从另一个活动返回时保留 Recyclerview 的滚动位置?

    我看到了很多关于这个主题的相关问题 但没有一个对我有帮助 我正在使用一个交错网格布局对于我的 RecyclerView 显示cards 每个 CardView 都会打开一个新活动 我面临的问题是 在从该新活动返回时 RecyclerView
  • React - 无法使用 CSS 模块设置 React 路由器导航链接的活动状态样式

    Goal 我正在尝试使用 css 模块将样式应用到侧栏中的活动路线 但是我想保留基本样式 分配 2 个类 我试过这段代码
  • x 轴上时间戳的格式

    我正在尝试格式化天气数据图中的 x 轴 我对 y 轴很满意 但我所有将 x 轴变成合适的 人类可读格式的尝试到目前为止都不起作用 因此 经过几个小时的尝试和错误 我希望对您有所帮助 我想要实现的目标 最后 我希望每 30 分钟有一个刻度线
  • 如何在 Windows 上更新 npm?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 I tried this http davidwalsh name upgrade no
  • 从 python **快速** 截取屏幕截图

    A PIL Image grab 大约需要0 5秒 这只是将数据从屏幕获取到我的应用程序 而不需要我进行任何处理 FRAPS http www fraps com 另一方面 可以拍摄高达 30 FPS 的屏幕截图 有什么方法可以让我在 Py
  • open_basedir, File() 不在允许的路径内

    我在使用安装在 Media Temple DV 上的 Laravel 时遇到问题 tempnam open basedir restriction in effect File is not within the allowed path
  • 如何使用 PCL 打印

    我有 Xerox workcenter 7120 这台打印机位于网络上 我想打印pdf文件与PCL命令来自Linux主持人 我的打印机支持PCL 但我不知道如何在打印机上发送打印作业PCL 我找到了这个文件如何解释所有PCL命令pcl命令施
  • 在GCS存储桶名称中使用project-id有什么风险?

    我一直在我的 GCS 存储桶名称中使用项目 ID 作为前缀 以便轻松获得唯一的名称 当我阅读时GCS 最佳实践 https cloud google com storage docs best practices naming 它明确表示不
  • 参考:为什么我使用 json_encode 编码的“特殊”Unicode 字符很奇怪?

    当使用 特殊 Unicode 字符时 它们在编码为 JSON 时会变成奇怪的垃圾 php gt echo json encode foo gt 馬 foo u99ac 为什么 我的编码有问题吗 This is a reference que
  • Rails 3:无需导入即可访问 twitter bootstrap 变量 + mixins

    我是第一次使用 Rails 3 尤其是 asset pipeline 和 less rails bootstrap 所以我可能会在这里遗漏一些非常基本的概念 我尝试了两种将 Twitter bootstrap CSS 包含到我的项目中的方法
  • 为什么在 WebApi 控制器操作后没有人处置 DbContext?

    我知道各种教程以及针对目标的完整示例WebApi Entity Framework 甚至来自微软 WebApi像这样的控制器 public HttpResponseMessage GetInternet int id var context
  • 生成器在输入迭代器的开头和结尾保留占位符完好无损

    我们以一个列表为例 a 255 255 1 255 255 255 1 2 255 255 2 255 255 3 255 3 255 255 255 255是有特殊价值在里面的 这是一个占位符 我制作了一个生成器来替换列表中的一些占位符
  • 如何更改选择标签中选项的背景颜色?

    我正在尝试更改选择标签中选项的背景颜色 I tried select gt option但它不起作用 我的代码如下 select width 100 height 32px background image url images 2017
  • Angular 5 - 元描述不起作用

    我遇到了 Angular 的 Meta 函数的问题 从 angular platform b rowser 导入 Meta 我已将其添加到我的页面 contact component ts 上 但我在网页上没有看到任何内容 没有元描述或其他
  • 如何将两个32位寄存器移至一个64位寄存器?

    假设我想放置两个 32 位寄存器EAX作为低 32 位字和EDX与高 32 位字一样RAX 我找到了一种方法 shl rdx 32 or rax rdx 仅当我们确定从 32 到 61 的位时 此方法才有效RAX是 0 如果我们不确定 那么
  • Chart.js​如何在多个聊天中同步平移和缩放

    我想在多个图表上同步平移和缩放 我一直在使用 Chart js 和 Chartjs plugin zoom Chartjs plugin zoom 使用 unZoom 回调函数调用事件 那么 X轴两端的值就是用回调函数这样获取的 onZoo