Jquery Chart.js条形图条形图宽度不一致

Jquery Chart.js条形图条形图宽度不一致,jquery,chart.js,chartnew.js,Jquery,Chart.js,Chartnew.js,我在chartjs中使用条形图。在该条形图中,条形图的宽度不一致。表示当条数(标签)为1时,表示单个条显示的宽度更大。它几乎占据画布的整个宽度 当条形图计数(标签)为3或更多时,如果我尝试对条形图使用“barValueSpacing”,它工作正常。但如果我最小化浏览器,则每个条形图重叠意味着它没有响应 在其他图表中,如“JQPLOT”,条形图的宽度会自动调整,它不关心条形图计数,因为它有“barWidth”选项。因此,我想在chart.js中设置条形图的默认宽度,并使用“ChartNew.js”

我在chartjs中使用条形图。在该条形图中,条形图的宽度不一致。表示当条数(标签)为1时,表示单个条显示的宽度更大。它几乎占据画布的整个宽度

当条形图计数(标签)为3或更多时,如果我尝试对条形图使用“barValueSpacing”,它工作正常。但如果我最小化浏览器,则每个条形图重叠意味着它没有响应


在其他图表中,如“JQPLOT”,条形图的宽度会自动调整,它不关心条形图计数,因为它有“barWidth”选项。因此,我想在chart.js中设置条形图的默认宽度,并使用“ChartNew.js”库。您能帮我解决这个问题吗

当图表宽度足够小时,固定的barValueSpacing会在条形图上水平翻转(条形图的右边缘变为左边缘,反之亦然)。您需要通过扩展条形图类型,根据图表宽度动态设置barValueSpacing

这是你怎么做的

var a = [1, 2, 3];
var data = {
    labels: ["A", "B", "C"],
    datasets: [{
        label: "My 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: a
    }]
};

Chart.types.Bar.extend({
    name: "BarAlt",
    draw: function(){
        this.options.barValueSpacing = this.chart.width / 5;
        Chart.types.Bar.prototype.draw.apply(this, arguments);
    }
});
还有小提琴-


顶部是调整大小的条形图,底部是普通条形图——我已经将图表宽度除以一个常数(5),但在现实生活中,您需要考虑数据点的数量,并除以适当的分数。

感谢您宝贵的回答。它工作得很好。我还需要一个解决方案。我正在使用ChartNew.js库。js库提供了“inGraphDataShow”选项,用于在条形图和饼图的顶部显示数据标签。你能帮我用“Chart.min.js”实现“inGraphDataShow”选项吗?据我所知,Chartjs没有这个选项。您可能只需在图表顶部分别呈现表格(从服务器端或客户端)。再次感谢。我能做到。如何使用ChartNew.js重新绘制图表?对不起,我不太明白-你是什么意思,如何重新绘制。。。如果您正在查找ChartNew.js文档,我相信它位于项目的Github wiki上。我的实际需求是我想在Chartjs库中显示所有图表类型的数据标签。但Chartjs现在没有提供这一选项。所以我选择了ChartNew.js。上面的解决方案与chart.min.js库完美配合。现在我的问题是如何在ChartNew.js?中使用上述解决方案?。