请教一下基于bootStrap的Chart.js里的横坐标问题

发布于 2022-08-29 19:42:00 字数 2772 浏览 13 评论 0

Chart.js是bootStrap官网上相关优质项目推荐的js控件。
在使用Chart.js时,如果数据多,横坐标就会把所有点的label数据全部写出来,但在有限的范围内,全部显示出来就会很难看了,特别在手机浏览器上。请问有什么方法可以省略部分label的显示。
可参考:
1. bootStrap官网(http://www.bootcss.com/)
2. chart.js说明文档(http://www.bootcss.com/p/chart.js/)
下面是我做了点小修改的DEMO:(随机生成数据)

<!doctype html>
<html>
    <head>
        <title>My Line Chart</title>
        <script src="../Chart.js"></script>
    </head>
    <body>
        <div style="width:30%">
            <div>
                <canvas id="canvas" height="450" width="600"></canvas>
            </div>
        </div>


    <script>
        var randomScalingFactor = function(){ return Math.round(Math.random()*100)};
        var randomInt = Math.round(Math.random()*100);
        var labels=[];
        for(var i=0;i<randomInt;i++){
            labels[i]="a"+i;
        }
        var randomDate = function(){ 
            var datas=[];
            for(var i=0;i<randomInt;i++){
                datas[i]=randomScalingFactor();
            }
            return datas;
        };
        var lineChartData = {
            labels : labels,
            datasets : [
                {
                    label: "My First dataset",
                    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 : randomDate()
                },
                {
                    label: "My Second dataset",
                    fillColor : "rgba(151,187,205,0.2)",
                    strokeColor : "rgba(151,187,205,1)",
                    pointColor : "rgba(151,187,205,1)",
                    pointStrokeColor : "#fff",
                    pointHighlightFill : "#fff",
                    pointHighlightStroke : "rgba(151,187,205,1)",
                    data : randomDate()
                }
            ]

        }

    window.onload = function(){
        var ctx = document.getElementById("canvas").getContext("2d");
        window.myLine = new Chart(ctx).Line(lineChartData, {

            //false
            responsive: true

        });
    }
    </script>
    </body>
</html>

PS:如果有其他更好的基于bootStrap的js控件就推荐一下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薄荷→糖丶微凉 2022-09-05 19:42:00

设置这个

Chart.defaults.global.pointHitDetectionRadius=1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文