0
與基於D3 code並行座標系工作時,我嘗試添加一些文字:問題添加多個文本元素SVG元素
g_data.select(".label")
.text(dimensionLabels) //visible
g_data.select(".sublabel1")
.text(dimensionSublabels1) //not visible
g_data.select(".sublabel2")
.text(dimensionSublabels2) //not visible
以前創建的SVG:文本和SVG:TSPAN元素:
var g_data = pc.svg.selectAll(".dimension").data(pc.getOrderedDimensionKeys());
// Enter
g_data.enter()
.append("svg:g")
.attr("class", "dimension")
.attr("transform", function(p) { return "translate(" + position(p) + ")"; })
.style("opacity", 0)
.append("svg:g")
.attr("class", "axis")
.attr("transform", "translate(0,0)")
.each(function(d) {
var axisElement = d3.select(this).call(pc.applyAxisConfig(axis, __.dimensions[d]));
axisElement.selectAll("path")
.style("fill", "none")
.style("stroke", "#222")
.style("shape-rendering", "crispEdges");
axisElement.selectAll("line")
.style("fill", "none")
.style("stroke", "#222")
.style("shape-rendering", "crispEdges");
})
.append('svg:text') //1st part of label
.attr({
"text-anchor": "middle",
"y": -40,
"x": 0,
"dy": 0,
"class": "label"
})
.append('svg:tspan') //2nd part of label
.attr({
"x": 0,
"dy": 17,
"class": "sublabel1"
})
.append('svg:tspan') //3rd part of label
.attr({
"x": 0,
"dy": 14,
"class": "sublabel2"
})
問題是,這隻適用於部分原因,我無法解釋:一次只能顯示一個文本標籤。
更具體地說,對於上面的情況,文本只會被添加到「.label」類svg中,而另外兩個是不可見的。但是,如果我註釋掉前兩行(如下所示),則sublabel1變得可見,依此類推。
//g_data.select(".label")
// .text(dimensionLabels) //with this part commented, the next label becomes visible
g_data.select(".sublabel1")
.text(dimensionSublabels1) //visible
g_data.select(".sublabel2")
.text(dimensionSublabels2) //not visible
誰能幫助找出可能會造成這一點,我可以做些什麼來在同一時間顯示的所有標籤?非常感謝!
解決了這個問題。在這個問題上花費了幾個小時之後,我對這個答覆的清晰度和有用性感激不盡。通過按照您的建議編輯我的代碼並創建一個節點_before_鏈接.append('tspan'),所有工作都很順利。也感謝有用的小提琴! – sc28