Biểu đồ GraphViz

   

Tài liệu này mô tả cách tạo biểu đồ GraphViz bằng API biểu đồ.

Tổng quan

GraphViz là gói công cụ nguồn mở để trực quan hóa biểu đồ kết nối. Bạn có thể tạo biểu đồ GraphViz bằng ngôn ngữ DOT và công cụ bố cục mà bạn chọn.

Biểu đồ GraphViz hỗ trợ một bộ tham số bắt buộc khác. Sau đây là các tham số được hỗ trợ:

Thông số Bắt buộc hoặc Không bắt buộc Nội dung mô tả
cht=gv[:<opt_engine>] Bắt buộc

Chỉ định biểu đồ GraphViz. Bạn có thể tuỳ ý chỉ định một công cụ GraphViz. Nếu bạn muốn chỉ định một công cụ bố cục, hãy thêm dấu chấm phẩy : và chỉ định một trong các chuỗi sau cho <opt_engine>:

  • dot – Công cụ mặc định
  • neato
  • twopi
  • circo
  • fdp

Hãy xem trang web củaGraphViz để biết nội dung mô tả về các công cụ này.

chs=<width>x<height> Không bắt buộc Nếu bạn không chỉ định kích thước, biểu đồ sẽ được tự động định kích thước.
chl=<DOT_string> Bắt buộc Biểu đồ cần vẽ, theo ký hiệu ngôn ngữ DOT. Bạn có thể tìm tài liệu tham khảo ngôn ngữ DOT trên trang web GraphViz.
chd KHÔNG DÙNG Mã GraphViz bất thường ở chỗ tham số chd bị bỏ qua. Đừng đưa vào URL của bạn.
chof=<output_format> Không bắt buộc Định dạng đầu ra cho biểu đồ. Hãy xem phần mô tả tham số để tìm hiểu những định dạng đầu ra được hỗ trợ. Nếu chỉ định chof=json, bạn sẽ nhận lại được biểu diễn JSON của biểu đồ dưới dạng bản đồ hình ảnh HTML. Bạn có thể sử dụng bản đồ này để thêm đường liên kết hoặc thành phần tương tác vào biểu đồ. Xem mục Tạo bản đồ hình ảnh biểu đồ để biết thông tin chi tiết.
callback=<handling_function_name> Không bắt buộc Nếu chỉ định chof=json, bạn cũng có thể chỉ định một hàm cần gọi bằng JSON được trả về chứa bản đồ hình ảnh của biểu đồ. Hàm của bạn phải chấp nhận một tham số JSON duy nhất. Tham số này sẽ là JSON đại diện cho biểu đồ. Sau đó, trang của bạn có thể chỉ định biểu đồ của bạn là một phần tử <img> để hiển thị biểu đồ, đồng thời gọi chính URL đó bằng chof=json&callback=somefunc và bao gồm một hàm có tên là somefunc(). Hàm này sẽ phân tích cú pháp JSON được trả về và thêm đường liên kết hoặc thành phần tương tác.

 

Ví dụ:

Nội dung mô tả Ví dụ:

ví dụ về công cụ chấm điểm (mặc định).

biểu đồ chấm
cht=gv
chl=digraph{A->B->C->A}
chs=150x150

ví dụ về công cụ neato của cùng một biểu đồ. biểu đồ neato
cht=gv:neato
chl=digraph{A->B->C->A}
chs=150x150
Biểu đồ dấu chấm, không có kích thước được chỉ định. Biểu đồ được tự động định kích thước. biểu đồ dấu chấm không chỉ định kích thước
cht=gv
chl=graph{a--b--c;b--d}
Biểu đồ phức tạp hơn. Biểu đồ chấm đẹp hơn
cht=gv
chl=
  graph{C_0--H_0[type=s];C_0--H_1[type=s];C_0--H_2[type=s];C_0--C_1[type=s];C_1--H_3[type=s];C_1--H_4[type=s];C_1--H_5[type=s]}

Dưới đây là một số mẹo và hạn chế đã biết trong biểu đồ GraphViz hiện tại:

  • Bạn không nên sử dụng thuộc tính graph size; thay vào đó, hãy sử dụng tham số API của biểu đồ chs.
  • Số nút tối đa là 200 và số cạnh tối đa là 400.
  • Không hỗ trợ tính năng khử răng cưa, độ trong suốt và phông chữ thay thế.
  • Các thuộc tính node imageshapefile không được hỗ trợ và sẽ gây ra lỗi nếu có.
  • Các thuộc tính graph ratio, marginpad không được hỗ trợ và sẽ bị bỏ qua nếu có.