如何在 ChartJS 2.0 中隐藏超出 x 轴的值?

2024-04-24

如何在 ChartJS 2.0 中隐藏超出 x 轴的值?您会注意到图表突出超过了 -60 标记。 x 轴使用时间刻度,我设置了最大值和最小值。

这是我的图表配置:

{  
   "type":"line",
   "data":{  
      "datasets":[  
         {  
            "label":"Scatter Dataset",
            "data":[  
               {  
                  "x":"2016-09-16T16:36:53Z",
                  "y":88.46153846153845
               },
               ...
               {  
                  "x":"2016-09-16T16:37:54Z",
                  "y":88.3076923076923
               }
            ],
            "pointRadius":0,
            "backgroundColor":"rgba(0,0,255,0.5)",
            "borderColor":"rgba(0,0,255,0.7)"
         }
      ]
   },
   "options":{  
      "title":{  
         "display":true,
         "text":"Water Level Over Last 60 Seconds"
      },
      "animation":false,
      "scales":{  
         "xAxes":[  
            {  
               "type":"time",
               "position":"bottom",
               "display":true,
               "time":{  
                  "max":"2016-09-16T16:37:54Z",
                  "min":"2016-09-16T16:36:54.000Z",
                  "unit":"second",
                  "unitStepSize":5
               },
               "ticks":{  
                        callback: function(value, index, values) {
                            return "-" + (60 - 5 * index);
                        }
               }
            }
         ],
         "yAxes":[  
            {  
               "display":true,
               "ticks":{  

               }
            }
         ]
      },
      "legend":{  
         "display":false
      }
   }
}

您可以使用以下方法实现此目的Chart.js 插件 http://www.chartjs.org/docs/#advanced-usage-creating-plugins。它们允许您处理创建、更新或绘制图表时发生的事件。

在这里,您需要在图表初始化之前进行影响:

// We first create the plugin
var cleanOutPlugin = {

    // We affect the `beforeInit` event
    beforeInit: function(chart) {

        // Replace `ticks.min` by `time.min` if it is a time-type chart
        var min = chart.config.options.scales.xAxes[0].ticks.min;
        // Same here with `ticks.max`
        var max = chart.config.options.scales.xAxes[0].ticks.max;

        var ticks = chart.config.data.labels;
        var idxMin = ticks.indexOf(min);
        var idxMax = ticks.indexOf(max);

        // If one of the indexes doesn't exist, it is going to bug
        // So we better stop the program until it goes further
        if (idxMin == -1 || idxMax == -1)
            return;

        var data = chart.config.data.datasets[0].data;

        // We remove the data and the labels that shouldn't be on the graph
        data.splice(idxMax + 1, ticks.length - idxMax);
        data.splice(0, idxMin);
        ticks.splice(idxMax + 1, ticks.length - idxMax);
        ticks.splice(0, idxMin);
    }
};

// We now register the plugin to the chart's plugin service to activate it
Chart.pluginService.register(cleanOutPlugin);

该插件基本上是一个循环数据以删除不应显示的值。

你可以看到这个插件在jsFiddle 上的实例 https://jsfiddle.net/gyotsv07/.

例如,以下聊天的最小设置为2和最大到6 ...

...会给出以下结果:

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

如何在 ChartJS 2.0 中隐藏超出 x 轴的值? 的相关文章

  • 如何从 javascript 数组本身向图表 js 添加数据?

    我想用chart js http www chartjs org docs 在数据结构数据中 如果我给出的数字为 data 40 80 5 190 56 55 40 工作正常 如果我给出一个数组变量或字符串变量来保存该数字 例如 var m
  • 如果静态值有效但 mySQL 的动态值无效,如何使用 Javascript 在 Chart.js 中显示 JSON 数据?

    我有以下形式的 JSON 数据 labels 12 11 2016 13 11 2016 14 11 2016 temperature 12 35 27 humidity 56 70 87 并想在 Chart js 中显示它 我已经找到了t
  • Chartjs 标签和图例

    我有一个包含一些 ChartJS 的应用程序 图表运行良好 当鼠标悬停在图表上时会显示图例 如何将图表配置为始终在图表上具有图例和标签值 而不仅仅是在悬停时 None
  • 如何在 Angular 2 中实现 Chart.js?

    我正在使用最新版本的 Angular 2 V4 0 0 并且我想在我的项目中使用 Chart js 库中的图表 而不会有太多复杂性 如何在我的 Angular 项目中实现 Chart js 并且不会在最终生产中给我带来问题 您可以按照以下说
  • Chartjs 气泡图中的各个气泡可以有标签吗?

    我正在使用 Chartjs 创建气泡图 我能够创建描述每个气泡的工具提示 但我的图表的用户可能无法将鼠标悬停在其上以查看工具提示 BubbleData 对象格式不包含标签元素 无论如何我都放了一个 不走运 我尝试过图表数据对象的 标签 元素
  • 如何增加标签和图表区域之间的空间?

    我所有的标签都在栏的顶部 我可以看到这个 but I want that would be like this 填充不适用于税费 但适用于税费 legend display false scales xAxes position top s
  • 如何隐藏/不绘制具有 0/null/未定义值的条形?

    如何隐藏错误的值 0 空或未定义 我尝试过做类似的事情 new Chart this barCanvas nativeElement data datasets data value lt 1 null value value2 lt 1
  • 如何进行复杂的查询? | ChartJS 和 Django

    我使用下面的 Chart JS 库创建了一个图表 我的 models py 下面 class Organization models Model name models CharField max length 250 unique Tru
  • 错误:“类别”不是注册规模

    我正在尝试从以下位置迁移 Chart js2 9 3 to 3 3 0即使在应用更改之后 https www chartjs org docs latest getting started v3 migration html https w
  • 如何移动 Chart.js 饼图上的标签位置

    我正在使用 Chart js 并且尝试将饼图上的标签移到饼图区域之外 请参见红色 X 这是我现在的代码 div class container h4 class title Title h4 div
  • Chart.js - 如何禁用悬停时的所有内容

    如何设置代码使图表上没有悬停效果 悬停选项 悬停 链接等 我正在使用 Chart js 下面是我的代码 我在其中设置饼图 Html div style width 90 div
  • Chartjs 插件数据标签不在图表上显示值

    我正在尝试使用 Chartjs 数据标签插件获取每个条形上的值 因此 在 a 条上方 a 想要看到数字 30 在 b 条上方或内部我想看到数字 50 但它根本没有显示任何价值 谁能帮忙并告诉我出了什么问题吗 我也尝试过使用不同版本的char
  • 如何使用 Chart.js 在标签中放置新行?

    我有一个使用 Chart js 的带有标签的数据集 我想用换行符将标签分成两行 我努力了 br and n 两者都不起作用 labels A br Waking B C D labels A nWaking B C D 第一个标签应该输出如
  • ng2-charts:如何设置 y 轴的固定范围

    我有一个使用 ng2 charts 模块的 Chart js 图表 该图表在 y 轴上显示百分比 在 x 轴上显示时间 是否可以将 y 轴设置为显示 0 到 100 而不是基于数据的动态范围 尝试将以下内容添加到图表选项中 scales y
  • 向 ChartJS 数据点添加逗号

    我需要在 ChartJS 图表中的数字中添加逗号 前任 数据点可能是 1032 05 4334 75 8482 46 我需要它显示为 1 032 05 4 334 75 8 482 46 以下是包含当前代码的开发网站的链接 投资计算器 ww
  • ChartJs:如何按时间值(而不是像素)以编程方式平移

    我使用的是chartJs 3 6 1 和 Chartjs plugin zoom 1 2 1 但我认为这并不重要 我有 2 个时间序列折线图 当我通过拖放平移一个图表时 我也想移动 平移另一个图表 为此 我为 graphA 启用了缩放 平移
  • Chartjs刻度标签位置

    尝试让 Y 轴刻度标签看起来像image https i stack imgur com XgoxX png 位于秤顶部且不旋转 缩放选项当前如下所示 scales yAxes id temp scaleLabel display true
  • 如何更改chart.js中的标签颜色?

    我有一个像这样定义的饼图 var myChart new Chart ctx type doughnut data labels data labels datasets data data values backgroundColor r
  • vue-chartjs 反应数据错误

    我正在尝试使用反应式数据混合vue chartjs http vue chartjs org home id reactive data 用于设置初始数据的已安装函数正在运行 我可以使用 API 响应正确查看图表 fetchSessionT
  • 如何将小时和分钟数据输入到 ChartJS 中

    我正在尝试使用 Chart js 制作折线图 我的数据的形式为 var result x 18 00 y 230 x 19 00 y 232 x 20 00 y 236 x 22 00 y 228 其中 x 代表时间 包括小时和分钟 我这样

随机推荐