javascript - Chart.js 如何对齐 x 刻度?

标签 javascript plot chart.js

我有许多按时间 x 轴随机分布的点,并且我只想在 XX:00 这样的时间绘制刻度线,从而保留为每个点显示单独工具提示的可能性。是否可以?

需要时立即提供示例代码.. https://codepen.io/zzmaster/pen/YYmMmX

var data = {
    labels: ["2012-02-02 12:03:11", "2012-02-02 12:12:11", "2012-02-02 13:10:11", "2012-02-02 14:22:11"],
    datasets: [
        {
            label: "My First dataset",
            type: 'line',
            fillColor: "rgba(220,220,220,0.2)",
            strokeColor: "rgba(220,220,220,1)",
            pointColor: "rgba(220,220,220,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(220,220,220,1)",
            data: [65, 59, 80, 81]
        },
    ]
};

var options = {
    scales: {
        xAxes: [{
            type: 'time',
            time: {
                unit: 'hour',
                unitStepSize: 1,
                displayFormats: {
                    'hour': 'HH:mm'
                },
            },
            ticks:{
                source: 'labels',
                maxTicksLimit: 20,
            },
        }],
        yAxes: [{
            scaleLabel: {
                display: true,
                labelString: 'Loading'
            },
        }],
    },

};;

var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx).Line(data, options);

最佳答案

GitHub 用户 etimberg 回答了这个问题:

removing source: 'labels' and setting unitStepSize: 0.5 achieves what you're looking for. https://codepen.io/anon/pen/ZrQjXr

var data = {
    labels: ["2012-02-02 12:03:11", "2012-02-02 12:12:11", "2012-02-02 13:10:11", "2012-02-02 14:22:11"],
    datasets: [
        {
            label: "My First dataset",
            type: 'line',
            fillColor: "rgba(220,220,220,0.2)",
            strokeColor: "rgba(220,220,220,1)",
            pointColor: "rgba(220,220,220,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(220,220,220,1)",
            data: [65, 59, 80, 81]
        },
    ]
};

var options = {
    scales: {
        xAxes: [{
            type: 'time',
            time: {
                unit: 'hour',
                unitStepSize: 0.5,
                displayFormats: {
                    'hour': 'HH:mm'
                },
            },
            ticks:{
                maxTicksLimit: 20,
            },
        }],
        yAxes: [{
            scaleLabel: {
                display: true,
                labelString: 'Loading'
            },
        }],
    },

};;

var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx, {
    type: 'line',
    options: options,
    data: data
})

关于javascript - Chart.js 如何对齐 x 刻度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48456854/

相关文章:

javascript - 我得到 "cannot set property ' innerHTML' of null

r - 具有高级绘图功能的多个绘图,尤其是 plot.rqs()

javascript - Chart.js 切断了 Canvas - 但填充使 donut 变得非常小

javascript - HTML 表单 javascript 关联问题、答案和反馈

javascript - ionic - $http.get 来自 Json 的项目

javascript - Firebase - 了解非规范化数据结构

matlab - matlab中的自定义 Axis 刻度

matlab - 使用 ezplot 在 MATLAB 中的同一张图上绘制两个函数

javascript - 如何用 Canvas 制作动画条形图?

javascript - 如何将来自外部源的时间作为 X 轴添加到 ChartJS 图表中?