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

4

66

I tried

$ dot -Tpng rel_graph.gv > rel_graph.png

but the resulting image has a very low quality.

Rolf answered 17/8, 2009 at 8:39 Comment(0)
F
107

Use the dpi attribute.

Example:

graph G { 
  graph [ dpi = 300 ]; 
  /* The rest of your graph here. */ 
}
Frye answered 12/10, 2010 at 18:53 Comment(4)
The negative side of this approach is that there is absolutely no anti-aliasing produced. With low resolution (like 72 dpi, for example) your output image will look very "dotted"Privacy
@Privacy maybe they changed over the time, I see anti-aliasing on both 72 dpi and 300 dpi.Tbar
@einpoklum yes it doesLiba
The equivalent -Gdpi=300 on the command line is also useful in some situations.Yaya
B
61

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

Use option -Gdpi.

You can find more information here.

Baseball answered 20/2, 2017 at 13:24 Comment(1)
dot -Tpng -Gdpi=300 foo.gv -o foo110percent.png Note: You can change the output format by varying the extension of the filename specified with -o see: graphviz.org/doc/info/output.htmlHagbut
T
13

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.

Tabescent answered 17/8, 2009 at 9:20 Comment(2)
Saving the SVG data to a *.png file seems like a bad idea to me…Yaya
@Yaya Dumb typo on my part, think I copy pasted this from the OP question and didn't do a full png to svg changeTabescent
C
0

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.

Confocal answered 1/6, 2022 at 19:5 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.