Tôi đang tìm cách để hình dung đồ thị được xây dựng trong Graphx của Spark. Theo như tôi biết Graphx không có bất kỳ phương pháp trực quan nào vì vậy tôi cần xuất dữ liệu từ Graphx sang một thư viện biểu đồ khác, nhưng tôi bị kẹt ở đây. Tôi đã truy cập vào trang web này: https://lintool.github.io/warcbase-docs/Spark-Network-Analysis/ nhưng không hiệu quả. Tôi nên sử dụng thư viện nào và cách xuất đồ thị.Visualx Visualization
5
A
Trả lời
6
Vì vậy, bạn có thể làm một cái gì đó như thế này
- Lưu để gexf (định dạng trao đổi đồ thị) Mã từ Manning | Spark GraphX in Action
def toGexf[VD,ED](g:Graph[VD,ED]) : String = { "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<gexf xmlns=\"http://www.gexf.net/1.2draft\" version=\"1.2\">\n" + " <graph mode=\"static\" defaultedgetype=\"directed\">\n" + " <nodes>\n" + g.vertices.map(v => " <node id=\"" + v._1 + "\" label=\"" + v._2 + "\" />\n").collect.mkString + " </nodes>\n" + " <edges>\n" + g.edges.map(e => " <edge source=\"" + e.srcId + "\" target=\"" + e.dstId + "\" label=\"" + e.attr + "\" />\n").collect.mkString + " </edges>\n" + " </graph>\n" + "</gexf>" }
- Sử dụng plugin GEXF trong linkurious.js để tải tệp
Ví dụ: http://gregroberts.github.io
1
bạn có thể sử dụng một trong hai Gephi hoặc d3
từ zeppelin. Kiểm tra D3.js In Action by Elijah Meeks
và Spark GraphX in Action by Michael S. Malak
Cho nó một đi như dưới đây từ khí cầu zeppelin trong scala
và js
mượn từ grapxInAction:
import org.apache.spark.graphx._
import scala.reflect.ClassTag
def drawGraph[VD:ClassTag,ED:ClassTag](g:Graph[VD,ED]) = {
val u = java.util.UUID.randomUUID
val v = g.vertices.collect.map(_._1)
println("""%html
<div id='a""" + u + """' style='width:960px; height:500px'></div>
<style>
.node circle { fill: gray; }
.node text { font: 10px sans-serif;
text-anchor: middle;
fill: white; }
line.link { stroke: gray;
stroke-width: 1.5px; }
</style>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>
.var width = 960, height = 500;
var svg = d3.select("#a""" + u + """").append("svg")
.attr("width", width).attr("height", height);
var nodes = [""" + v.map("{id:" + _ + "}").mkString(",") + """];
var links = [""" + g.edges.collect.map(
e => "{source:nodes[" + v.indexWhere(_ == e.srcId) +
"],target:nodes[" +
v.indexWhere(_ == e.dstId) + "]}").mkString(",") + """];
var link = svg.selectAll(".link").data(links);
link.enter().insert("line", ".node").attr("class", "link");
var node = svg.selectAll(".node").data(nodes);
var nodeEnter = node.enter().append("g").attr("class", "node")
nodeEnter.append("circle").attr("r", 8);
nodeEnter.append("text").attr("dy", "0.35em")
.text(function(d) { return d.id; });
d3.layout.force().linkDistance(50).charge(-200).chargeDistance(300)
.friction(0.95).linkStrength(0.5).size([width, height])
.on("tick", function() {
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
node.attr("transform", function(d) {
return "translate(" + d.x + "," + d.y + ")";
});
}).nodes(nodes).links(links).start();
</script>
""")
}
Các vấn đề liên quan
- 1. Visualization - về Tableau
- 2. GWT Visualization API DataTable Serialization
- 3. Một 'profiler với visualization' cho PHP với `đầy đủ backtrace visualization`?
- 4. Clustered Đồ thị kỹ thuật Visualization
- 5. Thêm một gradient vào Google-Visualization ColumnChart
- 6. jQuery tải Google Visualization API với AJAX
- 7. D3 Real-Time streamgraph (Graph Data Visualization)
- 8. Sử dụng .hide() và .show() với Google Visualization
- 9. Ứng dụng Jave EE không nhận ra API Google Visualization
- 10. số Complex visualization khi phần ảo là null trong MATLAB
- 11. Biểu đồ hình động hoạt hình với Google Visualization
- 12. Làm cách nào để biết Google Visualization có được tải
- 13. Thêm văn bản tùy chỉnh vào chú giải công cụ Google Visualization
- 14. C# Com Interop với Windows Media Player Visualization (Với Mã mẫu)
- 15. Google visualization API - Biểu đồ thanh xếp chồng - Chú giải công cụ tùy chỉnh
- 16. Thay thế cho Dòng thời gian chú thích của Google Visualization? (thư viện đồ họa)
- 17. Google Visualization API - Dòng và phân tán trên một biểu đồ
- 18. Google Visualization - TypeError: Không thể đọc thuộc tính 'DataTable' không xác định [Chrome cụ thể]
- 19. Xóa chú giải công cụ di chuột khỏi biểu đồ hình tròn của Google Visualization (biểu đồ lõi)
- 20. google.setOnLoadCallback() không hoạt động từ tệp JS riêng biệt
- 21. Mẫu Jinja hiển thị dấu ngoặc kép hoặc dấu nháy đơn là ' "
- 22. Thay đổi màu Tô và Màu của biểu đồ vùng?
- 23. Xóa đệm hoặc lề từ Google Charts
- 24. Lỗi biểu đồ của Google? Trục không bắt đầu từ 0
- 25. Thêm hai đám mây điểm khác nhau vào trình xem (Thư viện điểm đám mây (PCL))
- 26. Charts Google - Tránh hiển thị giá trị âm trong yAxis
- 27. Thư viện trực quan hóa dữ liệu tốt cho iOS là gì?
- 28. API biểu đồ của Google: Ngày không chính xác được hiển thị
- 29. Cách đặt hAxis.viewWindow.max cho một LineChart khi trục chính là typeofday?
- 30. cách chọn hai điểm từ trình xem trong PCL
Bạn cần chuyển đổi từ đỉnh và cạnh đồ thị để định dạng mà bạn cần. Đây là một repo chuyển đổi DataFrame sang định dạng Higcharts. https://github.com/knockdata/zeppelin-highcharts –
Tùy chọn khác sẽ là lưu biểu đồ của bạn sang định dạng 'GEXF' và tải chúng vào hệ thống hiển thị' Gephi' (https://gephi.org/). Thật không may GraphX không hỗ trợ định dạng đó một cách tự nhiên, nhưng bạn có thể tự mình thực hiện nó. –