簡體   English   中英

c3縮放與d3類似嗎?

[英]c3 scaling similar to d3?

我用c3制作了一些圖形,其易用性給我留下了深刻的印象。 但是,我不確定是否可以像下面的代碼一樣在d3中進行3值縮放:

var yScale = d3.scale.linear()
.domain([0,100,500])
.range([height,height-20,0]);

因此,我可以使圖形主要針對小於100的值進行縮放,因為這是大多數值所在的地方,我不希望條形縮放因超出100的值而傾斜。

是否可以在c3中執行類似的操作? 還是我需要使用d3進行這種縮放?

謝謝

您可以使用比例尺映射值和scale.invert以獲取所有標簽。 例如...

var myScale = d3.scale.linear().domain([0, 5, 50]).range([0, 40, 50]);

var chart = c3.generate({
    data: {
        columns: [
            ['A', 3, 2, 1, 4, 1.5, 42.5].map(function (value, index) {
                return index ? myScale(value) : value;
            })],
        type: 'spline'
    },
    tooltip: {
        format: {
            value: function (value) {
                return parseFloat(myScale.invert(value).toFixed(5));
            }
        }
    },
    axis: {
        y: {
            tick: {
                format: function (d) {
                    return myScale.invert(d)
                }
            }
        }
    }
});

parseFloat和toFixed可以消除來回轉換時的精度問題。

小提琴-http: //jsfiddle.net/rujx39fw/


c3 github上有一個類似的問題, 網址https://github.com/masayuki0812/c3/issues/252 它是通過類似的解決方法關閉的(也有一個鏈接的問題-通過引用此解決方法已關閉)

如果您喜歡冒險,也可以在https://github.com/masayuki0812/c3/issues/971上關注一個相關的問題,該問題提出了另一種選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM