7

我正在尝试使用sphinx.ext.inheritance_diagram扩展在 Sphinx 中生成继承图。这使用 Graphviz 来绘制图表。

这不是一个巨大的图表,似乎有足够的空间来增加节点的大小,因此它们是可读的。但是我不能让 Graphviz 这样做。我试过增加/减少字体大小、宽度、高度、大小等,但我的努力没有使图表变得可读。

在我的conf.py我有:

inheritance_graph_attrs = dict(rankdir="TB", ratio='fill')

为了生成一个模块的继承图,我在相应的rst文件中包含了以下指令:

.. inheritance-diagram:: package.module

这给了我下图:

生成图

我认为增加节点的大小应该可以解决问题,但我只是不知道该怎么做。

4

4 回答 4

0

我没有太多经验,但我想说问题是它只“检测”到三个水平级别。字体大小是根据可用空间自动计算的。您必须以某种方式让他将节点分布在三个以上的级别……如果没有具体的例子,很难说更多,因为我自己无法尝试。

于 2013-04-15T19:39:44.720 回答
0

文档似乎建议您可以使用这些:

  • inheritance_graph_attrs:继承图的graphviz图属性字典。
  • inheritance_node_attrs:继承图的graphviz节点属性字典。
  • inheritance_edge_attrs:继承图的graphviz边缘属性字典。
于 2015-06-30T12:38:57.420 回答
0

您应该在conf.py 中的inheritance_graph_attrs 中设置参数大小,例如:

inheritance_graph_attrs = dict(fontsize=12, size='"16.0, 20.0"')
于 2016-04-26T10:14:50.830 回答
0

我意识到这是一篇旧文章,但是由于我在尝试使用自定义继承图生成 sphinx 文档时偶然发现了它,所以我想我会包括一个几天前对我有帮助的答案。在生成继承图和更改它们的外观方面对我最有帮助的资源是Graphviz文档,它对设置这些参数非常有帮助。

该表标记了每个属性、使用该属性的组件以及名称-值对的组件值。所以对于每个:

inheritance_graph_attrs = G
inheritance_node_attrs = N
inheritance_edge_attrs = E

因此,您可以使用以下方法以英寸为单位设置节点的大小:

inheritance_node_attrs = {height=1, width=1} 

除非需要更多空间,否则节点的初始高度和宽度将为 1 英寸。您还可以查看 Graphviz 中可以更改的每个属性以及如何在 conf.py 文件中更改它们。

于 2020-08-08T00:19:00.457 回答