Có thể có các nhãn cạnh trong biểu đồ bằng cách sử dụng d3 không? Tôi đã xem qua các ví dụ và một số tài liệu, và tôi có thể thấy nơi ghi nhãn nút là có thể, nhưng ghi nhãn cạnh không được đề cập rõ ràng ở bất cứ đâu (mà tôi có thể tìm thấy).Có thể ghi nhãn cạnh d3 không?
Trả lời
Tiếp theo dân tộc ví dụ khác tôi
- thêm một
path
bên cạnh mỗi cạnh, - thêm
text
để các cạnh - ràng buộc rằng văn bản đến một
textpath
mà là tham khảo các con đường dọc theo mép
Ví dụ này đang sử dụng thứ e ý tưởng ở trên: http://bl.ocks.org/jhb/5955887
Câu trả lời ngắn gọn là "có", nhưng không có hỗ trợ rõ ràng cho nó. Bạn sẽ phải tự xác định vị trí của nhãn. Một cách để làm điều này là đính kèm nhãn vào nút bắt đầu và dịch nó bằng một nửa khoảng cách đến nút đích, cộng với một số bù đắp để ngăn nó trùng lặp đường kẻ. Đối với các cạnh phức tạp hơn (ví dụ: đường cong) sẽ khó khăn hơn.
http://bl.ocks.org/2926502 là một ví dụ về phương pháp này, với một nhãn gần mỗi đầu của mỗi liên kết. Các vị trí nhãn được tính toán lại trên mỗi đánh dấu. – donaldh
Tôi đã thử văn bản trên tùy chọn đường dẫn, nhưng nó khá liên quan và không dẫn đến sự xuất hiện mà tôi muốn. Thật không may, tôi đã không kiểm tra nó vào kho git cục bộ. Điều này xuất phát từ lịch sử Eclipse của tôi (nhờ các nhà phát triển Eclipse). Bạn sẽ phải thay đổi đoạn mã này thành cấu trúc dữ liệu của riêng bạn, nhưng tôi hy vọng nó sẽ giúp bạn. Cụ thể, hãy chú ý việc thêm giá trị id
vào lựa chọn lines
và sau đó sử dụng lại nó trong phần trăm lựa chọn bằng cách sử dụng thuộc tính xlink:href
. Ngoài ra, tôi đã thêm một số tspan
vào textpath
để di chuyển văn bản xuống một vài pixel để nó xuất hiện trên đường dẫn thay vì trên đó.
function drawLines(links) {
var diagonal = d3.svg.diagonal();
var format = d3.format(".1%");
var linkKey = function(l) {return l.target.key; };
var lines = linesGroup.selectAll("path").data(links, linkKey);
lines.enter()
.append("path")
.on("mouseover", select)
.on("mouseout", unselect)
.attr("d", diagonal)
.attr("id", function (l) { return "interaction-path-target-" + l.target.key; })
.style("stroke-width", 0.000001);
lines.exit()
.transition().duration(500)
.style("stroke-width", 0.000001)
.remove();
lines.transition()
.delay(function(d, i) { return i * 100; })
.duration(500)
.style("stroke-width", function(d) { return d.weight == 0 ? 0.000001 : d.weight/1000; })
.attr("d", diagonal);
var percentages = linesGroup.selectAll("text").data(links, linkKey);
percentages.enter()
.append("text")
.attr("opacity", 1)
.append("svg:textPath")
.attr("startOffset", "70%")
.attr("xlink:href",
function(l) {
return "#interaction-path-target-" + l.target.key;
})
.append("svg:tspan")
.attr("dy", 3)
.attr("class", "percentageText")
percentages.exit()
.transition().duration(500)
.attr("opacity", 0)
.remove();
percentages
.transition()
.delay(function(d, i) { return i * 100; })
.duration(500)
.attr("opacity", 1);
percentages.select(".percentageText").text(function(d) {
var newvalue = d.weight ?
d.incomming ? percentageIn(d.weight) : percentageOut(d.weight) : 0;
return format(newvalue);
});
}
- 1. d3 trục ghi nhãn
- 2. Graphviz --- nhãn cạnh quá gần cạnh khác
- 3. Bố cục lực lượng D3.js - vị trí nhãn cạnh/xoay
- 4. Thêm nhãn cạnh với Cytoscape.js
- 5. Có thể chuyển đổi cạnh của trục y và các nhãn trên một ô mặt không?
- 6. Ghi nhãn nút mạng cụ thể
- 7. d3.js lực đóng mở với nhãn
- 8. nhãn bootstrap bên cạnh đầu vào
- 9. Làm thế nào để thay đổi thứ tự của nhãn khía cạnh trong ggplot (tùy chỉnh khía cạnh nhãn bọc)
- 10. Có thể cạnh tranh các hoạt động nguyên tử không?
- 11. TeamCity - SVN và ghi nhãn
- 12. Đặt nhãn ở giữa các nút trong d3.js
- 13. Thêm nhãn vào sơ đồ hợp âm D3
- 14. Chèn ngắt dòng trong nhãn nút bố trí lực D3
- 15. Ghi đè trênTouchEvent cạnh tranh với ScrollView
- 16. Cách đặt bù trừ nhãn cạnh mạng? (để tránh trùng lặp nhãn)
- 17. Graphviz: Đặt nhãn cạnh ở phía bên kia
- 18. Làm thế nào để thêm nhãn cạnh trong Graphviz?
- 19. Căn chỉnh nhãn ở dạng bên cạnh đầu vào
- 20. Tại sao biểu đồ hướng d3 lực của tôi không hiển thị các cạnh?
- 21. Thêm nhãn vào các cạnh trong arbor.js (Plugin truy vấn)
- 22. Graphviz: Đặt cạnh nhãn ở phía bên kia (II)
- 23. D3 - Biểu đồ hình tròn & Nhãn hướng dẫn có hiệu lực
- 24. Không thể chọn phần tử SVG foreignObject trong d3
- 25. Ghi nhãn ngoại lệ hộp trong R
- 26. Auto môi trường ghi nhãn trong AUCTeX
- 27. Có thể chọn màu một nhãn trong Silverlight không?
- 28. Có thể ghi đè trường loại không?
- 29. Nhóm Radio với nhãn có thể nhấp
- 30. vim: Thêm nhãn có thể nhấp
Tôi giả sử bạn có nghĩa là ghi nhãn sao cho văn bản đi theo đường dẫn của biểu đồ. Nếu vậy, SVG dường như có một tính năng [văn bản trên đường dẫn] (http://www.w3.org/TR/SVG/text.html#TextOnAPath) trong thông số kỹ thuật, nhưng tôi chưa bao giờ thử nó, vì vậy không chắc chắn nó dễ đến mức nào. – meetamit