[英]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.