直到今天,我一直在使用doxygen(+ dot)的“古代”版本(1.4.7),它通常绘制垂直方向的图形,例如
..但是最近的一个(通过Ubuntu分发1.8.6),图表似乎是水平的,即
水平方向的问题在于许多图形远离窗口的右边缘,所以你必须进行“2D”滚动才能看到数据。
我查看了doxygen网页,但看不到是否有选项告诉dot用垂直方向绘制它们。有谁知道这种选择是否存在?
答案 0 :(得分:5)
2014年有一个类似的问题,我是重复回答: Flip doxygen's graphs from top-to-bottom orientation to left-to-right
在寻找同样的自己并找不到任何东西之后,我能提供的最好的就是使用图形属性rankdir进行黑客攻击。
步骤1)确保Doxygen保留点文件。在你的配置文件中放置DOT_CLEANUP = NO。
步骤2)找到Doxygen生成的点文件。应该是* __ incl.dot的形式。对于以下步骤,我将此文件称为<source>.dot
步骤3a)假设点文件未明确指定rankdir(通常默认为TB&#34;),使用此命令重新生成输出。
dot -Grankdir="LR" -Tpng -o<source>.png -Tcmapx -o<source>.map <source>.dot
步骤3b)如果由于某种原因在点文件中指定了rankdir,请进入该文件并添加rankdir="LR"
(默认情况下,rankdir
设置为"TB"
)。
digraph "AppMain"
{
rankdir="LR";
...
然后使用:
重新生成输出dot -Tpng -o<source>.png -Tcmapx -o<source>.map <source>.dot
每次运行Doxygen后都需要重做。批处理文件可能很方便,特别是如果要处理所有文件。对于步骤3b,批量替换文本超出了本答案的范围:)。但这里似乎是一个很好的答案:
How can you find and replace text in a file using the Windows command-line environment?
答案 1 :(得分:0)
参考迈克尔的答案,
我写了一些python3脚本来对
点图,使其成为LR。
这对我来说非常方便,也许对某人有用。
调整输出路径"../../doxygen_output"
指向您的氧气输出,
然后只需使用当前工作目录=脚本路径运行脚本即可。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
""" This script postprocesses a doxygen output to change the dot graphs having rankdir="LR"."""
import os
for path,dirs,files in os.walk("../../doxygen_output"):
for f in files:
if len(f) > 5: # prevent index out of range error
if f[-4:] == ".dot":
source = os.path.join(path,f.replace(".dot",""))
cmdTpl = 'dot -Grankdir="LR" -Tpng -o<source>.png -Tcmapx -o<source>.map <source>.dot'
cmd = cmdTpl.replace("<source>",source)
os.system(cmd)