Biểu đồ GraphViz

   

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

Tổng quan

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

Biểu đồ GraphViz hỗ trợ một tập hợp các 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 một 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 : đánh dấu 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 truy cập vào trang web GraphViz để xem 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 định kích thước tự động.
chl=<DOT_string> Bắt buộc Biểu đồ cần vẽ, bằng ký hiệu ngôn ngữ DOT. Bạn có thể tìm thấy tài liệu tham khảo về ngôn ngữ DOT trên trang web của GraphViz.
chd KHÔNG SỬ DỤNG Các mã GraphViz khác thường ở chỗ tham số chd bị bỏ qua. Đừng đưa những thông tin này 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 nội dung mô tả về 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 bản trình bày JSON của biểu đồ dưới dạng bản đồ hình ảnh HTML mà bạn có thể sử dụng để thêm đường liên kết hoặc hoạt động tương tác vào biểu đồ. Hãy xem phần 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 để gọi bằng JSON được trả về có 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à đại diện JSON của biểu đồ. Sau đó, trang của bạn có thể chỉ định biểu đồ là một phần tử <img> để hiển thị biểu đồ, đồng thời gọi cùng một 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 các đường liên kết hoặc hoạt động tương tác.

 

Ví dụ:

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

ví dụ về công cụ dấu chấ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 biểu đồ tương tự. biểu đồ neato
cht=gv:neato
chl=digraph{A->B->C->A}
chs=150x150
Một biểu đồ chấm, không có kích thước được chỉ định. Biểu đồ được định kích thước tự động. biểu đồ chấm không có kích thước được chỉ định
cht=gv
chl=graph{a--b--c;b--d}
Một biểu đồ phức tạp hơn. Một biểu đồ dạng dấu chấm
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à giới hạn đã biết trong biểu đồ GraphViz hiện tại:

  • Bạn không nên dùng thuộc tính graph size; thay vào đó, hãy dùng tham số của API Biểu đồ chs.
  • Số nút tối đa là 200 và số nút tối đa cho cạnh là 400.
  • Các phông chữ thay thế, độ trong suốt và chống răng cưa không được hỗ trợ.
  • 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ó.