2011-09-01 21 views
10

Sto cercando di utilizzare graphviz (lo strumento da riga di comando dot, per essere più specifico) per generare un layout SVG di un grafico. Vorrei utilizzare i miei file SVG generati da Inkscape per definire le forme dei nodi e ho seguito le istruzioni su graphviz tutorial. Sto emettendo SVG quindi, in teoria, questo dovrebbe essere facile da fare dichiarando le forme come <symbol> se <use> nel diagramma. This e-mail mi fa credere che la funzionalità sia stata implementata e non riesco proprio a capire come usarla.Come utilizzare SVG per forme di nodo personalizzate in graphviz?

Ho provato ad avere un attributo image di un nodo che punta al file SVG di forma personalizzata. Ho anche provato a impostare il nodo shape a custom e ad indicare lo shapefile nella forma SVG. dot si lamenta se inserisco un nome file non valido, e il suo grafico del plugin suggerisce che può leggere SVG. Sto indovinando che sto usando gli attributi sbagliati, o che c'è qualcosa di sbagliato nei file SVG che ho provato.

Per qualsiasi valore, ho impostato viewBox sull'attributo <svg>.

risposta

8

graphviz supporta solo l'input SVG in cui gli attributi width e height sono impostati su <svg> utilizzando le unità assolute (pixel, pollici ecc.). Inkscape restituisce height="100%" width="100%" viewBox="0 0 width_in_pixels height_in_pixels" come attributi nell'elemento <svg>.

Ho archiviato uno bug report e uno sviluppatore di graphviz mi ha indirizzato allo help for the image attribute, che descrive i requisiti per l'utilizzo di SVG in forme di nodo personalizzate.

Problemi correlati