Alexandru
Alexandru

Reputation: 25810

How do I set the resolution when converting dot files (graphviz) to images?

I tried

$ dot -Tpng rel_graph.gv > rel_graph.png

but the resulting image has a very low quality.

Upvotes: 68

Views: 39981

Answers (4)

north at graphviz
north at graphviz

Reputation: 449

I think antialiasing is driver-dependent. For example, we hardcode cairo_font_options_set_antialias(options,CAIRO_ANTIALIAS_GRAY); but I don't see anything about explicit smoothing or antialiasing in other graphics primitives or any mention of antialiasing or smoothing in any other drivers.

Upvotes: 0

x2yline
x2yline

Reputation: 1039

dot -Tpng -Gdpi=300 foo.gv > foo110percent.png

Use option -Gdpi.

You can find more information here.

Upvotes: 63

RobV
RobV

Reputation: 28646

I find GraphViz draws nice Graphs but the resolution tends to be reasonably low, you could try outputting to SVG and then using some other image package to scale the image appropriately and then save to a pixel based format like PNG. This might give you better resolution but I've never tried it personally, I tend to mainly just create SVG files I can then view with a browser.

Just change the -T parameter to -Tsvg

dot -Tsvg rel_graph.gv > rel_graph.svg

There is some stuff in the Dot Guide http://www.graphviz.org/pdf/dotguide.pdf about scaling of Graphs but it's not very clear about how that affects resolution, you could also experiment with those settings and see if that improves things.

Upvotes: 13

MarcP
MarcP

Reputation: 1117

Use the dpi attribute.

Example:

graph G { 
  graph [ dpi = 300 ]; 
  /* The rest of your graph here. */ 
}

Upvotes: 110

Related Questions