【问题标题】:Google Charts Visualization Column Chart axis formatting and column colorsGoogle Charts Visualization 柱形图轴格式和列颜色
【发布时间】:2011-05-12 13:58:37
【问题描述】:

我使用 Google 的 Visualization Chart API 工具制作了这个柱形图。我将如何使 y 轴数字只是正整数?我试过浏览文档,但似乎找不到任何东西。

【问题讨论】:

  • 我也遇到了同样的问题...你得到答案了吗?
  • 以下所有答案均不正确。这不受 atm 支持,解决方法是操纵最小值和最大值,使增量长度恰好变为 1(我知道这不是您想听到的)。 Link

标签: google-visualization


【解决方案1】:

我使用了以下,从那以后就没有看到分数了……

vAxis:{minValue:0,maxValue:5,gridlines:{count:6}}

诀窍似乎是使用 6 条网格线和 5 条作为最低“高”值, 一半和十分之一不再适用。

【讨论】:

  • 我仍然可以得到分数,但我不再遇到 Y 轴标签像“3.0...”这样被切断的问题(这些值效果很好)跨度>
  • 如果我的值高于 6,这将无济于事。
  • 虽然这不直观,但它实际上工作正常。 @Thayne 即使您的值高于 6,这实际上也有效。它将 5 设置为“最小”maxValue,如果您的数据包含高于 5 的值,则轴将相应地放大而不会出现任何问题。
【解决方案2】:

这对我有用

vAxis: {minValue:0, format:'#'}

【讨论】:

    【解决方案3】:

    只需使用 hAxis.format

    示例:

    hAxis: {minValue:0,format:'0'},
    

    格式 0 = 数字

    【讨论】:

    • 不幸的是,这只改变了用于显示值的格式,非整数值可能仍会显示,它们只会被截断。例如,如果您的图表的 vAxis 数据范围为 0-2,您将看到 vAxis 标签 0 1 1 2 2。
    【解决方案4】:

    正数:

    您可以使用 vAxis.minValue 设置最低 y 轴网格线,但是网格线的实际值将是您设置的最小值和数据中的最小值,所以如果您的数据中有 0 (正如您对 Unsatisfactory 所做的那样),该值将用于最低的 y 轴网格线。

    整数:

    http://groups.google.com/group/google-visualization-api/browse_thread/thread/04a001766367dc0f/84c34338c2808069 - 这是一篇较旧的帖子,但由于图表 API 文档中没有任何内容,因此似乎仍然缺少仅指定整数的功能。

    因为图表默认为 5 条网格线(这是您希望能够覆盖的),如果您的最高数据值为 2.0(如示例中所示),您可以强制整数通过设置vAxis: {maxValue: 5},虽然这可能不是最优雅的解决方案。

    【讨论】:

    • 比设置maxValue 更好的方法是将gridlines 选项设置为最大值加一。
    • 我实际上必须使用maxValue: 4 才能获得不错的结果。可能是因为我也有minValue: 0。
    【解决方案5】:

    您可以使用axisLabels 功能。 要使用它,您必须手动编辑 axixLabels,如下所示:http://code.google.com/apis/chart/image/docs/chart_params.html#axis_labels

    例如:

    chxt=x,y
    chxp=0:|Excellent|Very Good|Fair|Unsatisfactory|1:|0|1|2
    

    您好,

    一月

    【讨论】:

    • “Google 图表工具的图像图表部分已于 2012 年 4 月 20 日正式弃用。”
    【解决方案6】:

    如果您按以下方式更改图表类型:

    google.load('visualization', '1', {'packages':['linechart']});
    

    会为你工作..

    【讨论】:

    • 这确实有效,但它会切换到 Google 图表库的旧版本。这可能对某些人有好处,但如果您需要较新的“corechart”库中的功能,则不是。
    【解决方案7】:
    var max=Math.max(1,10,15,20);(u have to pass the values what the values u have)
    var maxvalue= max / 4;
    var res=Math.floor(maxvalue);
    res=res+1;
    var remin= max % 4;
    if(res != 0) {
        maxvalue=(res * 4);
    }
    else
        maxvalue= 4;
    

    使用上面的代码对我来说工作正常。

    【讨论】:

      【解决方案8】:

      对于这个问题,我能找到的唯一解决方法是……例如,默认的网格划分为 4。您可以更改该数字。但是在默认值 (4) 的情况下,vAxis.maxValue 应该可以被 4 整除,如果现在增加该数字使其如此。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-26
        相关资源
        最近更新 更多