gpt4 book ai didi

javascript - Apexcharts 项目栏上的最大宽度

转载 作者:行者123 更新时间:2023-12-05 00:30:21 27 4
gpt4 key购买 nike

如何更改 Apexcharts 中项目栏的最大宽度/高度? (https://apexcharts.com/)
我有一个水平条形图,其数据是动态加载的,并且用户(项目)的数量会有所不同。当用户很少或只有一个时,该栏看起来非常大,我想将高度设置为最大 50 像素。
编码:

    var timeChart = {
formatter: function (value) {
var v = formatFromSeconds(value);
return v;
}
};
var desv_time = function (value) {
var v = formatFromSeconds(value);
if (value>0)return "+"+v;
else return v;
}

//CHART
var chart1 = new ApexCharts( document.querySelector("#chart-desv"),
{
chart: {
id: 'chart1',
type: 'bar'
},
plotOptions: {
bar: {
horizontal: true,
},
},
dataLabels: {
enabled: true,
formatter: desv_time,
style: {
colors: ["#000"]
}
},
series: [],
xaxis: {labels: {
formatter: desv_time,
}},
tooltip: {
followCursor: true,
x: {
formatter: function(value) {
return value;
},
},
y: {
formatter: desv_time,
title: {formatter: (seriesName) => 'Time difference',}
},
marker: {show:false}
},
title: { text: "Usual workday duration: 08:00", align: "center" }
});
chart1.render();
屏幕截图(一个用户的非常大的栏):
enter image description here

最佳答案

我正在使用类似于@Oscar Schafer 的方法
我发现,就我而言,宽度可能取决于我的系列的长度。
field 是:

  • 当我们的项目很少时,例如1 或 2,图表宽度将仅填充这些列。然后,如果我的项目很少,则 columnWidth 应该按比例变小(在我的情况下接近 20%)

  • enter image description here
  • 当我们有更多项目时,它们都共享图表宽度并更平滑地填充它。然后,如果我有很多项目,该列应该按比例更大(接近 80%)

  • enter image description here
    我用过 LOGISTIC-GROWTH MODEL作为计算条形宽度的函数
    enter image description here
    下面是计算列宽的代码:
    // f(x) = c / (1 + a*exp(-x*b)) -> LOGISTIC GROWTH MODEL
    var optimalColumnWidthPercent = 20 + (60 / (1 + 30*Math.exp(-seriesLength /3)));

    // 20: minimum width should be close to 20 (when only one item)
    // 20+60: maximum width should be close 80
    // 30 and 3: the a and b from the function, I've selected after testing some cenarios from seriesLength from 1 to 12 and finding which worked for me

    ...

    plotOptions: {
    bar: {
    columnWidth: optimalColumnWidthPercent + "%"
    },
    },

    关于javascript - Apexcharts 项目栏上的最大宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63395784/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com