谷歌图表瑞士y轴数字格式

时间:2013-04-16 07:54:24

标签: google-visualization

有没有办法没有黑客如何将y轴标签格式化为瑞士德国风格 (例如 - > 10000000 10'000'000)? 试图将语言设置为瑞士语,但它仍然没有按照它应该格式化

google.load("visualization", "1", { "packages": ["corechart"], 'language': 'de_CH' })

添加了我想要的exaclty示例,现在我已经入侵了,但想知道是否有更好的方法...

Format Example

2 个答案:

答案 0 :(得分:0)

不,这是不可能的。

Google使用ICU DecimalFormat集的子集,不幸的是,这不允许您强制人员使用区域设置或更改分隔符。如果您现在获得.作为分隔符,那么您将获得最接近的分隔符。

强制执行此类操作的唯一方法是编写自定义代码,使用自定义javascript函数循环遍历图表创建的svg元素,该函数将替换.或{{1与,一起使用。没有超级简单的方法可以做到这一点,但jeffrey_the_wind的this post显示了一种方式:

  

从我所做的所有搜索来看,以及这里给出的答案   通过jmac,我决定唯一的方法是更换Javascript黑客   轴数字用词。我实现的代码在这里:

'
     

基本上,你只需要制作一个迭代遍历所有的for循环   您在x和y轴上显示的整数。做一些    /* * * The following 2 functions are a little hacky, they have to be done after calling the "draw" function * The bubble chart originally displays only numbers along the x and y axes instead of customer or product names * These 2 functions replace those numbers with the words for the customers and products * */ for ( var i = -2; i < products.length + 1; i ++ ){ $('#customer_product_grid svg text[text-anchor="start"]:contains("'+i+'")').text(function(j,t){ if (t == i){ if (i >= products.length || i < 0){ return " "; } return products[i]; } }); } for ( var i = -2; i <= customers.length + 3; i ++ ){ $('#customer_product_grid svg text[text-anchor="end"]:contains("'+i+'")').text(function(j,t){ if (i >= customers.length + 1 || i <= 0){ return " "; }else if (t == i){ return customers[i-1]; } }); } 填充要么使用元素替换整数   数组,或者只是将其留空。

     

请注意以上代码才能正常工作,您需要拥有   图表选项中的以下属性 - &gt; if...else

答案 1 :(得分:0)

这是我的黑客

//Format diagram y-axis labels
    var labelContainer = $($("#diagramPlaceholder").find("g")[1]).children("g:last-child").children("g");

    //Foreach x,y1,y2 labels do
    labelContainer.each(function() {
        var textContainer = $(this).find("text");
        //If labels contains valid number
        if (!isNaN(textContainer.text().replace(/\./g, '').replace(',', '.'))) {
            //Replace " . " chars with " ' " char
            textContainer.text(textContainer.text().replace(/\b[.]\b/g, '\''));
        }
    });