Tiết lộ nội dung: Sử dụng Vizdom.dev để hiển thị DAG được viết bằng ngôn ngữ DOT
Là một nhà phát triển phần mềm, thỉnh thoảng tôi làm việc với DAG - hầu hết đều liên quan đến việc trực quan hóa chúng. Trong nhiều trường hợp, tôi cảm thấy khó có được kết xuất nhanh và phải tìm kiếm công cụ.
May mắn thay, có người đáng tin cậy
Ngoại trừ…
*Được rồi, về mặt kỹ thuật , Graphviz có thể được biên dịch sang WebAssugging và một số người tài năng đã cố gắng xây dựng một số dự án gọn gàng như của dreampuf
Ví dụ: tôi muốn lưu trữ biểu đồ của mình trong
tôi có thể dùng
Thật không may, tôi phải dịch DOT thành hương vị markdown mà Nàng tiên cá yêu cầu. Đối với các cách trình bày văn bản nhỏ hơn, tôi có thể sử dụng ChatGPT để chuyển đổi chúng cho mình, nhưng nó thường mắc lỗi ngữ pháp và biểu đồ sẽ từ chối hiển thị - khiến nó không đáng tin cậy như một nguồn tự động hóa.
Sau đó có
Đúng - tôi đã xây dựng một
…Và nó được xây dựng hoàn toàn bằng Rust 🦀 xin cảm ơn rất nhiều
tl;dr — một ứng dụng đơn giản, được xây dựng có mục đích để hiển thị DAG trực tuyến, nhanh chóng
Giảm thiểu các điểm giao nhau trong quá trình tạo biểu đồ, một thách thức NP-hard được công nhận là chìa khóa để tạo ra các biểu đồ hấp dẫn về mặt trực quan. Nhóm tại Terrastruct đã công bố một kết quả xuất sắc
Phiên bản này đặc biệt hiệu quả trong việc hiển thị các biểu đồ phân cấp, tận dụng sự phức tạp phức tạp của vấn đề này.
Việc hiển thị các DAG lớn (hơn 500 nút/cạnh) có xu hướng hơi chậm với Graphviz. Dagre + D3 (
Tôi tin rằng đó là một sự thỏa hiệp tốt cho các loại thuộc tính mà DOT được tạo theo chương trình sẽ sử dụng.
Vâng, đó là sự so sánh giữa táo với cam. Graphviz vẫn tạo ra những hình ảnh trực quan tuyệt vời và hỗ trợ nhiều hơn nữa
Vâng, tôi biết thật khủng khiếp khi so sánh kinh nghiệm và công cụ nhiều năm trong suốt hơn 30 năm của Graphviz, nhưng đối với trường hợp sử dụng hẹp của tôi, nó nhanh đến mức điên rồ. Dưới đây là một số thời gian treo tường trên Macbook Pro M1 của tôi để hiển thị
* Nó gặp sự cố do cờ mô tả, ALLOW_MEMORY_GROWTH=1
, không được đặt, do đó giới hạn tổng bộ nhớ ở mức 16MB. Điều này có thể khắc phục được nhưng tôi chưa tìm thấy dự án trực tuyến nào có thể xử lý biểu đồ được đề cập.
** Biểu đồ mẫu được hiển thị bằng cách chọn Example 14
trong chế độ xem trình soạn thảo. Việc làm mới trang sẽ khiến bạn phải làm mới trang và nhận được 414 vì URI vẫn tồn tại trong biểu đồ quá lớn. Tôi đang nghiên cứu giải pháp tốt hơn để lưu trữ biểu đồ lớn hơn.
Bạn sẽ nhận thấy khi thực hiện bất kỳ thay đổi nào đối với tệp DOT, URL sẽ ngay lập tức cập nhật một số tham số truy vấn để lưu trữ các tùy chọn biểu đồ và bố cục, cho phép bạn luôn tham chiếu bản sao dữ liệu của mình chỉ bằng cách lưu trữ liên kết!
Có một nhược điểm - đồ thị cỡ lớn có xu hướng làm cho URI quá lớn đối với AWS (trong đó
Tôi hiện đang nghiên cứu giải pháp xử lý các biểu đồ lớn hơn, nhưng đồng thời, tôi đã đưa ra một số cách để duy trì và lưu trữ biểu đồ:
Đây là một ví dụ về giao diện của trình soạn thảo
Chuyển đến Editor View và tải Example 42
Thỉnh thoảng, tôi thấy mình đang cố gắng so sánh hai biểu đồ mà tôi đã tạo, vì vậy khi làm việc đó, tôi đã thêm một
Huyền thoại màu sắc:
Dưới đây là một vài ảnh chụp nhanh:
Nhấp vào tôi: thay đổi ID nút từ “e” thành “f”
Nhấp vào tôi: thêm “cluster=true”
Nếu bạn có bất kỳ phản hồi nào, vui lòng nhắn tin cho tôi qua
Cảm ơn bạn đã đọc - Nếu bạn thích bài viết này, hãy theo dõi !
[1]: ER Gansner, E. Koutsofios, SC North và K. . -P. Võ, “Kỹ thuật vẽ đồ thị có hướng,” trong IEEE Transactions on Software Engineering, tập. 19, không. 3, trang 214–230, tháng 3 năm 1993, doi: 10.1109/32.221135.
Cũng được xuất bản ở đây