我有我敢在显示字段名称的水平条形图。如果名称(文本)超出栏,则文本必须为黑色,如下所示。我会怎么做?文字水平条形图上 - D3
2
A
回答
1
我设法它使用两个文本标签的事情。顶部标签被包裹在svg中,所以它剪辑它的长度。这里是工作示例 - http://jsfiddle.net/cuckovic/C6SSj/
bar.append("text")
.attr("class", "below")
.attr("x", 12)
.attr("dy", "1.2em")
.attr("text-anchor", "left")
.text(function(d) { return d.sharedLabel; })
.style("fill", "#000000");
bar.append("rect")
.attr("class", "malebar")
.attr("height", barWidth-gap)
.attr("x", 10);
bar.append("svg")
.attr({
height: barWidth-gap
})
.append("text")
.attr("class", "up")
.attr("x", 12)
.attr("dy", "1.2em")
.attr("text-anchor", "left")
.text(function(d) { return d.sharedLabel; })
.style("fill", "#ffffff");
2
这不是做一个简单的事情。你将不得不
- 添加文本。
- 确定使用
.getBBox()
或类似的东西它的实际尺寸。 - 删除文本。
- 拆分取决于其实际宽度和所述条的宽度的文本转换成单独的段(例如
tspan
多个)。 - 添加具有相应样式的段。
也就是说,您必须手动将文本分解为您想要不同样式的部分,然后分配这些样式。
+0
你能举个例子吗? – Preethi
+0
对于你所要求的确实没有任何例子,但[这里](http://enja.org/code/tuts/d3/bar/)是一个教程,它使用了边界框和[here](http: //stackoverflow.com/questions/13922862/getting-text-area-using-getbbox)是关于这个问题的一个问题。 –
相关问题
- 1. D3水平条形图精确复制
- 2. 基本d3:水平条形图
- 3. D3水平堆积条形图线
- 4. 如何动画水平D3条形图?
- 5. 重构d3条形图为水平条形图
- 6. 水平条形图
- 7. 使用D3使滑块在水平条形图上工作
- 8. 使用d3.js在水平条形图上的错误
- 9. Highcharts带条形文字的水平条形图
- 10. 如何在d3的水平条形图上的x轴上添加一条线
- 11. D3js - 将垂直条形图更改为水平条形图
- 12. Legend在水平多条形图
- 13. 排序水平条形图D3js
- 14. Qt:3D水平条形图
- 15. ggplot2的水平条形图
- 16. 水平显示条形图
- 17. 水平条形图标签
- 18. morris.js水平条形图
- 19. 在水平条形图上绘制条形图
- 20. D3水平条形图不会转变为新数据集
- 21. dc.js - 水平条形图/行聊天,还是旋转d3.svg?
- 22. d3.js水平条形图 - 将Y轴保持在图形中间
- 23. D3水平树布局与矩形和文字环绕
- 24. 将水平条形图更改为垂直条形图
- 25. Excel - 条形图与每个条上的水平参考线
- 26. 水平条形图上的核心散点图散点图
- 27. 删除水平条形图中的顶部水平线(Chart.js 2)
- 28. 水平条形图不为0
- 29. Matplotlib中的水平堆积条形图
- 30. 分页太多的水平条形图
谢谢@cuckovic :) – Preethi