1
我在dc.js中創建了一個折線圖,該線圖由d3.js構建而成。我在y軸上計數,在x軸上計算小時數。我希望線路在午夜8點之間藍色,8點至12點爲橙色,12點至5點爲紅色,5點至11點爲綠色。我曾嘗試用不同的顏色創建4個不同的路徑(下面是一個例子)。顏色顯示出來,但是它們在數據點之間增加了額外的線條,一些顏色在一起流血,特別是如果選擇較淺的顏色。我附上了我想讓線條看起來像的圖像。如果任何人都能指引我正確的方向,我會非常感激。你可能會考慮D3.js/Dc.js線條圖中單線的不同彩色線段
var path2 = layersEnter.append("path")
.attr("class", "line2")
.attr("stroke", "#B31E3F")
.attr("stroke-width", "3px")
.attr("fill", "none");
if (_dashStyle)
path.attr("stroke-dasharray", _dashStyle);
dc.transition(layers.select("path.line2"), _chart.transitionDuration())
.attr("d", function (d) {
var segments2 = d.points;
//console.log("s2b: " + segments2);
//segments2.splice(23, 1);
//segments2.splice(22, 1);
//segments2.splice(21, 1);
//segments2.splice(20, 1);
//segments2.splice(19, 1);
//segments2.splice(18, 1);
//segments2.splice(17, 1);
//segments2.splice(16, 1);
//segments2.splice(15, 1);
//segments2.splice(14, 1);
//segments2.splice(13, 1);
//segments2.splice(12, 1);
//segments2.splice(11, 1);
//segments2.splice(10, 1);
segments2.splice(9, 1);
segments2.splice(8, 1);
segments2.splice(7, 1);
segments2.splice(6, 1);
//segments2.splice(5, 1);
//segments2.splice(4, 1);
//segments2.splice(3, 1);
//segments2.splice(2, 1);
//segments2.splice(1, 1);
//segments2.splice(0, 1);
//console.log("s2a: " + segments2);
return safeD(line(segments2));
});
我試圖像上面一樣添加自己的SVG路徑,但不知道y座標是什麼將會。我希望它在午夜到上午8點之間對所有y值都是藍色的。我讀過的所有內容都說明我必須給出具體的y值。 – user3057785
@ user3057785您必須動態創建線性漸變,使用與d3.svg.line函數用於計算路徑相同的y尺度設置停止偏移值。 – AmeliaBR
你的方法像冠軍一樣工作。謝謝!! – user3057785