【问题标题】:Amcharts category axis labels overlapAmcharts 类别轴标签重叠
【发布时间】:2014-03-09 04:38:41
【问题描述】:

我正在使用 amCharts javascript 图表版本 3,我也尝试了最新版本。

问题是:我有一个带有 scrollBar 的 lineChart ,该图表的 categoryAxis 甚至有 100 多条记录,所以在第一次渲染时它只显示 5-6,然后我放大以查看更多 categoryAxis 标签。到目前为止一切顺利。

但是当我缩放时,categoryAxis 上的标签会重叠,所以一切看起来都乱七八糟,实际上是因为缩放后网格数量的增加。

我尝试过categoryAxis.autoGridCount,但没有成功。

请帮忙,在此先感谢。

【问题讨论】:

    标签: javascript amcharts


    【解决方案1】:

    我在包含日期的类别轴上遇到了同样的问题。 我解决了它,这是我的解决方案: 最重要的部分是parseDate设置为false

    categoryAxis.parseDates = false;
    

    您必须将 categoryAxis.autoGridCount 设置为 true,因为根据轴大小自动设置 gridCount 的数量很重要。

    categoryAxis.autoGridCount = true;
    

    然后

    categoryAxis.minHorizontalGap = 100;
    

    正如有人提到的那样,这在日期之间创造了空间。

    我的用法是:

        //Category Axes
        var categoryAxis = chart2.categoryAxis;
        categoryAxis.gridAlpha = 0;
        categoryAxis.autoGridCount = true;
        categoryAxis.minHorizontalGap = 100;
        categoryAxis.gridPosition = "start";
        categoryAxis.equalSpacing = false;
        categoryAxis.parseDates = false;
        categoryAxis.minPeriod = "DD";
        categoryAxis.startOnAxis = true;
        categoryAxis.axisColor = "#dcdcdc";
        categoryAxis.axisThickness = 1;
        categoryAxis.showLastLabel = true;
    

    【讨论】:

      【解决方案2】:

      尝试使用categoryAxis.renderer.minGridDistance 属性。这将告诉图表不要将标签/网格放置在比上述像素值更近的位置。增加这些数字将意味着可能更稀疏的网格线和相关标签。减少可能会导致更密集的网格/标签。

      使用示例:categoryAxis.renderer.minGridDistance = 40;

      更多信息:Amcharts documentation for the same

      【讨论】:

        【解决方案3】:

        我知道这是一个很老的问题,但这是我最近遇到的问题,我在网上找不到满意的解决方案。旋转类别标签的问题是它可以将图表缩小很多!

        我想出的解决方案是使用标签格式化程序垂直交错类别标签。

        我的格式化程序

        var up = false;
        
        function formatLabel(value, valueString, axis){
            if(up) {
                axis.labelOffset=0;
            }
            else {
                axis.labelOffset=25;
            }
            up=!up;
        
            return value;
        }
        

        这里有一些关于设置格式化程序的信息

        https://amcharts.zendesk.com/entries/23473053-Formatting-axis-labels-using-custom-function

        但基本上你所要做的就是在轴上设置 labelFunction

        "categoryAxis": {
            "labelFunction":formatLabel
        }
        

        【讨论】:

          【解决方案4】:

          autoGridCount 应设置为 true。根据您的描述,我猜您的轴标签中有很多文字。我可以建议将您的 categoryAxis 的 minHorizo​​ntalGap 增加到 100 左右(默认为 75)。如果这没有帮助,我需要查看您的图表。

          【讨论】:

          • 没有运气!但我通过在一定程度上旋转标签文本来管理,现在没有重叠
          猜你喜欢
          • 2015-03-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多