Wykresy GraphViz

   

Ten dokument opisuje sposób tworzenia wykresów GraphViz za pomocą interfejsu Chart API.

Omówienie

GraphViz to pakiet narzędzi open source do wizualizacji grafów połączeń. Wykresy GraphViz można tworzyć za pomocą języka DOT i wybranych silników układu.

Wykresy GraphViz obsługują inny zestaw wymaganych parametrów. Obsługiwane parametry:

Parametr Wymagany czy opcjonalny Opis
cht=gv[:<opt_engine>] Wymagane

Określa wykres GraphViz. Opcjonalnie możesz określić silnik GraphViz. Jeśli chcesz określić mechanizm układu, dołącz średnik: mark i podaj jeden z tych ciągów dla <opt_engine>:

  • dot – mechanizm domyślny
  • neato
  • twopi
  • circo
  • fdp

Opisy tych wyszukiwarek znajdziesz na stronie GraphViz.

chs=<width>x<height> Opcjonalnie Jeśli nie określisz rozmiaru, rozmiar wykresu zostanie dopasowany automatycznie.
chl=<DOT_string> Wymagane Wykres do narysowania w formacie DOT. Informacje o języku DOT znajdziesz na stronie GraphViz.
chd NIEUŻYTKOWANE Kody GraphViz są nietypowe, ponieważ parametr chd jest ignorowany. Nie dodawaj go do adresu URL.
chof=<output_format> Opcjonalnie Format wyjściowy wykresu. Zapoznaj się z opisem parametru, aby dowiedzieć się, które formaty wyjściowe są obsługiwane. Jeśli określisz właściwość chof=json, otrzymasz wykres w formacie JSON jako mapa obrazu HTML, której możesz używać do dodawania do wykresu linków lub elementów interaktywnych. Szczegółowe informacje znajdziesz w artykule Tworzenie mapy obrazu wykresu.
callback=<handling_function_name> Opcjonalnie Jeśli podasz chof=json, możesz też określić funkcję do wywołania ze zwróconym kodem JSON, który zawiera mapę obrazu wykresu. Twoja funkcja musi akceptować pojedynczy parametr JSON, który będzie reprezentacją wykresu w formacie JSON. Strona może następnie określić ten wykres jako element <img> służący do renderowania wykresu, a także wywołać ten sam adres URL za pomocą funkcji chof=json&callback=somefunc i załączyć funkcję o nazwie somefunc(), która przeanalizuje zwrócony plik JSON i doda linki lub elementy interaktywne.

 

Przykłady:

Opis Przykład

przykład silnika kropkowego (domyślnie).

wykres kropkowy
cht=gv
chl=digraph{A->B->C->A}
chs=150x150

neato Engine na tym samym wykresie. wykres neato
cht=gv:neato
chl=digraph{A->B->C->A}
chs=150x150
Wykres kropkowy bez określonego rozmiaru. Rozmiar wykresu jest dobierany automatycznie. wykres kropkowy bez określonego rozmiaru
cht=gv
chl=graph{a--b--c;b--d}
Bardziej złożony wykres. Bardziej wyszukany wykres kropkowy
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]}

Oto kilka wskazówek i znanych ograniczeń dotyczących bieżących wykresów GraphViz:

  • Nie należy używać atrybutu graph size. Zamiast niego użyj parametru chs interfejsu Chart API.
  • Maksymalna liczba węzłów to 200, a maksymalna dla krawędzi – 400.
  • Antyaliasing, przejrzystość i alternatywne czcionki nie są obsługiwane.
  • Atrybuty node image i shapefile nie są obsługiwane i w ich przypadku będą powodować błąd.
  • Atrybuty graph ratio, margin oraz pad nie są obsługiwane i będą ignorowane, jeśli występują.