patchwork(1)


NAME

   patchwork - filter for drawing clustered graphs as treemaps

SYNOPSIS

   patchwork  [-(G|N|E)name=value]  [-Tlang]  [-llibfile] [-ooutfile] [-O]
   [-P] [-v] [-V] [files]

DESCRIPTION

   patchwork draws clustered graphs using a squarified treemap layout.  As
   input,  it  takes any graph in the dot format. Each cluster is given an
   area based on  the  areas  specified  by  the  clusters  and  nodes  it
   contains. The areas of nodes and empty clusters can be specified by the
   area attribute.  The default value is 1.

   The root graph is laid out as a square. Then, recursively,  the  region
   of  a  cluster  or  graph  is partitioned among its top-level nodes and
   clusters, with each given a roughly square subregion with its specified
   area.

OUTPUT FORMATS

   Patchwork uses an extensible plugin mechanism for its output renderers,
   so to see what output formats your installation of  patchwork  supports
   you  can  use ``patchwork -Txxx'' (where xxx is an unlikely format) and
   check  the  warning  message.   Also,  The  plugin  mechanism  supports
   multiple  implementations  of the output formats.  To see what variants
   are available, use, for example: ``patchwork -Tpng:'' and  to  force  a
   particular variant, use, for example: ``patchwork -Tpng:gd''

   Traditionally,  patchwork  supports  the  following: -Tps (PostScript),
   -Tsvg -Tsvgz (Structured Vector Graphics), -Tfig (XFIG graphics), -Tmif
   (FrameMaker  graphics),  -Thpgl  (HP pen plotters), and -Tpcl (Laserjet
   printers), -Tpng -Tgif (bitmap graphics), -Tdia (GTK+ based  diagrams),
   -Timap (imagemap files for httpd servers for each node or edge that has
   a nonnull "href" attribute.), -Tcmapx (clientside imagemap for use in
   html and xhtml).  Additional less common or more specialpurpose output
   formats             can             be             found             at
   http://www.graphviz.org/cvs/doc/info/output.html.)

   Alternative  plugins providing support for a given output format can be
   found from the error message resulting from  appending  a  ':'  to  the
   format. e.g. -Tpng: The first plugin listed is always the default.

GRAPH FILE LANGUAGE

   Here  is  a  synopsis  of  the  graph file language, normally using the
   extension .gv, for graphs:

   [strict] (graph|digraph) name { statementlist }
   Is the top level graph. If the graph is strict then multiple edges  are
   not  allowed  between  the  same  pairs  of nodes.  If it is a directed
   graph, indicated by digraph, then the edgeop must be "->". If it is  an
   undirected graph then the edgeop must be "--".  Statements may be:

   name=val;
   node [name=val];
   edge [name=val];
   Set  default graph, node, or edge attribute name to val.  Any subgraph,
   node, or edge appearing after this inherits the new default attributes.

   n0 [name0=val0,name1=val1,...]; Creates node n0 (if it does not already
   exist) and sets its attributes according to the optional list.

   n0 edgeop n1 edgeop ... edgeop nn [name0=val0,name1=val1,...];
   Creates  edges  between nodes n0, n1, ..., nn and sets their attributes
   according to the optional list.  Creates nodes as necessary.

   [subgraph name] { statementlist }
   Creates a subgraph.  Subgraphs may be used in place of n0, ...,  nn  in
   the  above statements to create edges.  [subgraph name] is optional; if
   missing, the subgraph is assigned an internal name.

   Comments may be /*Clike*/ or //C++like.

   Attribute  names  and  values  are  ordinary  (Cstyle)  strings.   The
   following sections describe attributes that control graph layout.

GRAPH ATTRIBUTES

   size="x,y" sets bounding box of drawing in inches.

   page="x,y" sets the PostScript pagination unit.

   ratio=f  sets  the  aspect  ratio  to  f  which may be a floating point
   number, or one of the keywords fill, compress, or auto.

   pagedir=[TBLR][TBLR] sets the major and minor order of pagination.

   rotate=90  sets  landscape   mode.    (orientation=land   is   backward
   compatible but obsolete.)

   center=n a nonzero value centers the drawing on the page.

   layers="id:id:id:id"  is  a  sequence  of layer identifiers for overlay
   diagrams.   The  PostScript  array  variable  layercolorseq  sets   the
   assignment  of  colors to layers. The least index is 1 and each element
   must be a 3element array to be interpreted as a color coordinate.

   color=colorvalue sets foreground color (bgcolor for background).

   href="url" the default url for image map files;  in  PostScript  files,
   the  base URL for all relative URLs, as recognized by Acrobat Distiller
   3.0 and up.

   URL="url" ("URL" is a synonym for "href".)

   stylesheet="file.css" includes a reference to a stylesheet in -Tsvg and
   -Tsvgz outputs.  Ignored by other formats.

   splines.  If  set  to  true,  edges  are  drawn  as splines.  If set to
   polyline, edges are drawn as polylines.  If set  to  ortho,  edges  are
   drawn  as  orthogonal  polylines.  In all of these cases, the nodes may
   not overlap.  If splines=false or splines=line, edges are drawn as line
   segments.  The default is false.

NODE ATTRIBUTES

   height=d   or   width=d   sets   minimum   height   or  width.   Adding
   fixedsize=true forces these to be the  actual  size  (text  labels  are
   ignored).

   shape=record polygon epsf builtin_polygon
   builtin_polygon  is  one of: plaintext ellipse oval circle egg triangle
   box diamond trapezium parallelogram  house  hexagon  octagon  note  tab
   box3d  component.   (Polygons  are defined or modified by the following
   node attributes: regular, peripheries, sides,  orientation,  distortion
   and  skew.)   epsf uses the node's shapefile attribute as the path name
   of an external EPSF file to be automatically loaded for the node shape.

   label=text where text may include escaped newlines \n, \l,  or  \r  for
   center, left, and right justified lines.  The string '\N' value will be
   replaced by the node name.  The string '\G' value will be  replaced  by
   the  graph  name.   Record  labels  may  contain  recursive  box  lists
   delimited by { | }.  Port identifiers in labels are set  off  by  angle
   brackets < >.  In the graph file, use colon (such as, node0:port28).

   fontsize=n sets the label type size to n points.

   fontname=name sets the label font family name.

   color=colorvalue  sets the outline color, and the default fill color if
   style=filled and fillcolor is not specified.

   fillcolor=colorvalue sets the fill color  when  style=filled.   If  not
   specified,  the  fillcolor when style=filled defaults to be the same as
   the outline color.

   fontcolor=colorvalue sets the label text color.

   A colorvalue may be  "h,s,v"  (hue,  saturation,  brightness)  floating
   point numbers between 0 and 1, or an X11 color name such as white black
   red green blue yellow magenta cyan or burlywood, or a  "#rrggbb"  (red,
   green, blue, 2 hex characters each) value.

   style=filled solid dashed dotted bold invis or any Postscript code.

   layer=id  or  id:id  or "all" sets the node's active layers.  The empty
   string means no layers (invisible).

   The following attributes apply only to polygon shape nodes:

   regular=n if n is nonzero then  the  polygon  is  made  regular,  i.e.
   symmetric  about  the  x and y axis, otherwise the polygon takes on the
   aspect ratio of the  label.   builtin_polygons  that  are  not  already
   regular  are made regular by this attribute.  builtin_polygons that are
   already  regular  are  not  affected  (i.e.   they   cannot   be   made
   asymmetric).

   peripheries=n  sets  the  number  of  periphery  lines drawn around the
   polygon.  This value  supersedes  the  number  of  periphery  lines  of
   builtin_polygons.

   sides=n  sets  the  number  of  sides to the polygon. n<3 results in an
   ellipse.  This attribute is ignored by builtin_polygons.

   orientation=f sets the orientation of the first  apex  of  the  polygon
   counterclockwise  from  the  vertical, in degrees.  f may be a floating
   point number.  The orientation  of  labels  is  not  affected  by  this
   attribute.   This  attribute  is  added  to  the initial orientation of
   builtin_polygons.

   distortion=f sets the amount of broadening of the top and narrowing  of
   the  bottom  of  the  polygon  (relative to its orientation).  Floating
   point values between -1  and  +1  are  suggested.   This  attribute  is
   ignored by builtin_polygons.

   skew=f  sets  the  amount  of  rightdisplacement  of the top and left
   displacement  of  the  bottom  of  the   polygon   (relative   to   its
   orientation).   Floating  point values between -1 and +1 are suggested.
   This attribute is ignored by builtin_polygons.

   href="url" sets the url for the node in imagemap,  PostScript  and  SVG
   files.  The substrings '\N' and '\G' are substituted in the same manner
   as for the node label attribute.  Additionally the  substring  '\L'  is
   substituted with the node label string.

   URL="url" ("URL" is a synonym for "href".)

   target="target"  is  a target string for clientside imagemaps and SVG,
   effective when nodes  have  a  URL.   The  target  string  is  used  to
   determine  which window of the browser is used for the URL.  Setting it
   to "_graphviz" will open a new window if it doesn't already  exist,  or
   reuse  it if it does.  If the target string is empty, the default, then
   no target attribute is included in the output.  The substrings '\N' and
   '\G'  are  substituted  in  the  same  manner  as  for  the  node label
   attribute.  Additionally the substring '\L'  is  substituted  with  the
   node label string.

   tooltip="tooltip"  is  a  tooltip  string for clientside imagemaps and
   SVG, effective when nodes have a URL.  The tooltip string  defaults  to
   be  the  same  as  the  label  string, but this attribute permits nodes
   without labels to still have tooltips thus  permitting  denser  graphs.
   The  substrings '\N' and '\G' are substituted in the same manner as for
   the  node  label  attribute.   Additionally  the  substring   '\L'   is
   substituted with the node label string.

EDGE ATTRIBUTES

   label=text  where  text  may include escaped newlines \n, \l, or \r for
   centered, left, or right justified lines.  If  the  substring  '\T'  is
   found  in  a  label  it will be replaced by the tail_node name.  If the
   substring '\H' is found in a label it will be replaced by the head_node
   name.   If  the  substring  '\E'  value  is found in a label it will be
   replaced by: tail_node_name->head_node_name If the  substring  '\G'  is
   found  in  a  label  it  will  be  replaced  by the graph name.  or by:
   tail_node_name--head_node_name for undirected graphs.

   fontsize=n sets the label type size to n points.

   fontname=name sets the label font family name.

   fontcolor=colorvalue sets the label text color.

   style=solid dashed dotted bold invis

   color=colorvalue sets the line color for edges.

   color=colorvaluelist  a  ':'  separated  list  of  colorvalue   creates
   parallel edges, one edge for each color.

   dir=forward back both none controls arrow direction.

   tailclip,headclip=false disables endpoint shape clipping.

   href="url"  sets  the  url for the node in imagemap, PostScript and SVG
   files.  The substrings '\T', '\H', '\E' and '\G' are substituted in the
   same  manner  as  for  the  edge  label  attribute.   Additionally  the
   substring '\L' is substituted with the edge label string.

   URL="url" ("URL" is a synonym for "href".)

   target="target" is a target string for clientside imagemaps  and  SVG,
   effective  when  edges  have a URL.  If the target string is empty, the
   default, then no target attribute  is  included  in  the  output.   The
   substrings '\T', '\H', '\E' and '\G' are substituted in the same manner
   as for the edge label attribute.  Additionally the  substring  '\L'  is
   substituted with the edge label string.

   tooltip="tooltip"   is  a  tooltip  string  for  clientside  imagemaps
   effective when edges have a URL.  The tooltip string defaults to be the
   same  as  the  edge  label string.  The substrings '\T', '\H', '\E' and
   '\G' are  substituted  in  the  same  manner  as  for  the  edge  label
   attribute.   Additionally  the  substring  '\L' is substituted with the
   edge label string.

   arrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, tee,
   empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow.

   arrowsize                                 (norm_length=10,norm_width=5,
   inv_length=6,inv_width=7,dot_radius=2)

   headlabel,taillabel=string          for          port           labels.
   labelfontcolor,labelfontname,labelfontsize  for  head  and tail labels.
   The substrings '\T', '\H', '\E' and '\G' are substituted  in  the  same
   manner  as  for  the  edge label attribute.  Additionally the substring
   '\L' is substituted with the edge label string.

   headhref="url" sets the url for the head port in  imagemap,  PostScript
   and   SVG  files.   The  substrings  '\T',  '\H',  '\E'  and  '\G'  are
   substituted in the  same  manner  as  for  the  edge  label  attribute.
   Additionally  the  substring  '\L'  is  substituted with the edge label
   string.

   headURL="url" ("headURL" is a synonym for "headhref".)

   headtarget="headtarget" is a target string  for  clientside  imagemaps
   and  SVG,  effective when edge heads have a URL.  The headtarget string
   is used to determine which window of the browser is used for  the  URL.
   If  the  headtarget  string  is  empty,  the  default,  then headtarget
   defaults to the same value as target  for  the  edge.   The  substrings
   '\T', '\H', '\E' and '\G' are substituted in the same manner as for the
   edge label attribute.  Additionally the substring '\L'  is  substituted
   with the edge label string.

   headtooltip="tooltip"  is  a  tooltip  string for clientside imagemaps
   effective when head ports have a URL.  The tooltip string  defaults  to
   be  the  same  as the headlabel string.  The substrings '\T', '\H', and
   '\E' are  substituted  in  the  same  manner  as  for  the  edge  label
   attribute.   Additionally  the  substring  '\L' is substituted with the
   edge label string.

   tailhref="url" sets the url for the tail port in  imagemap,  PostScript
   and   SVG  files.   The  substrings  '\T',  '\H',  '\E'  and  '\G'  are
   substituted in the  same  manner  as  for  the  edge  label  attribute.
   Additionally  the  substring  '\L'  is  substituted with the edge label
   string.

   tailURL="url" ("tailURL" is a synonym for "tailhref".)

   tailtarget="tailtarget" is a target string  for  clientside  imagemaps
   and  SVG,  effective when edge tails have a URL.  The tailtarget string
   is used to determine which window of the browser is used for  the  URL.
   If  the  tailtarget  string  is  empty,  the  default,  then tailtarget
   defaults to the same value as target  for  the  edge.   The  substrings
   '\T', '\H', '\E' and '\G' are substituted in the same manner as for the
   edge label attribute.  Additionally the substring '\L'  is  substituted
   with the edge label string.

   tailtooltip="tooltip"  is  a  tooltip  string for clientside imagemaps
   effective when tail ports have a URL.  The tooltip string  defaults  to
   be  the  same as the taillabel string.  The substrings '\T', '\H', '\E'
   and '\G' are substituted in the same  manner  as  for  the  edge  label
   attribute.   Additionally  the  substring  '\L' is substituted with the
   edge label string.

   labeldistance and port_label_distance set distance; also labelangle (in
   degrees CCW)

   decorate draws line from edge to label.

   samehead,sametail  aim  edges  having  the same value to the same port,
   using the average landing point.

   layer=id or id:id or "all" sets the edge's active  layers.   The  empty
   string means no layers (invisible).

   (neatospecific attributes)
   w=f  sets the weight (spring constant) of an edge to the given floating
   point value.  The default is 1.0; greater values  make  the  edge  tend
   more toward its optimal length.

   len=f sets the optimal length of an edge.  The default is 1.0.

COMMAND LINE OPTIONS

   -G sets a default graph attribute.
   -N sets a default node attribute.
   -E  sets  a  default edge attribute.  Example: -Gsize="7,8" -Nshape=box
   -Efontsize=8

   -lfile loads custom PostScript library  files.   Usually  these  define
   custom  shapes  or  styles.   If  -l  is  given by itself, the standard
   library is omitted.

   -Tlang sets the output language as described above.

   -O automatically generate output filenames based on the input  filename
   and the -T format.

   -v (verbose) prints various information useful for debugging.

   -V (version) prints version information and exits.

   -? prints the usage and exits.

EXAMPLES

   graph G {
     node[style=filled]
     subgraph cluster0 {
       subgraph cluster0_0 {
         style=filled
         fillcolor=green
         a b[area=3 fillcolor=yellow]
       }
       subgraph cluster0_1 {
          area=2
          bgcolor=yellow
       }
       c [style=filled
         fillcolor=red ]
     }
     subgraph cluster1 {
       e f
     }
   }

BUGS

   At  present,  patchwork  ignores edges, and supplies no visual clues to
   indicate nesting.  Such clues might consist of nested boxes or  thicker
   rectangular  outlines.  In  addition,  it would be good if some cluster
   label could be displayed.

   Patchwork has no mechanism for fitting labels within the supplied box.

AUTHORS

   Emden R. Gansner <erg@research.att.com>
   Yifan Hu <yifanhu@research.att.com>

SEE ALSO

   This man page contains only a small amount of the  information  related
   to  the  Graphviz layout programs. The most complete information can be
   found at http://www.graphviz.org/Documentation.php, especially  in  the
   online  reference pages. Most of these documents are also available in
   the doc and doc/info subtrees in the source and binary distributions.

   dot(1)

   M. Bruls, K. Huizing and J.  van  Wijk,  "Squarified  Treemaps",  Proc.
   Eurographics and IEEE TVCG Symposium on Visualization, 1999, pp. 3342.

                             22 April 2011                    PATCHWORK(1)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.