Диаграмма наследования Sphinx graphviz увеличивает размер узла

Я пытаюсь создать диаграмму наследования в Sphinx, используя расширение sphinx.ext.inheritance_diagram. . Это использует Graphviz для рисования диаграмм.

Это небольшая диаграмма, и кажется, что места достаточно, чтобы увеличить размер узлов, чтобы они были читаемы. Однако я не могу заставить Graphviz сделать это. Я пробовал увеличивать/уменьшать размер шрифта, ширину, высоту, размер и т. д., но мои усилия не сделали диаграмму читабельной.

В моем conf.py у меня есть:

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

И чтобы сгенерировать диаграмму наследования для модуля, я включил следующую директиву в соответствующий rst файл:

.. inheritance-diagram:: package.module

Это дает мне следующую схему:

сгенерированная диаграмма

Я думаю, что увеличение размера узлов должно помочь, но я просто не могу понять, как это сделать.


person siebz0r    schedule 03.04.2013    source источник


Ответы (4)


У меня не так много опыта, но я бы сказал, что проблема в том, что он «обнаруживает» только три горизонтальных уровня. Размер шрифта рассчитывается автоматически в зависимости от доступного места. Надо как-то заставить его распределять узлы более чем на три уровня... Без конкретного примера сложно сказать больше, так как сам не могу попробовать.

person Luc Saffre    schedule 15.04.2013

документация предполагает, что вы можете использовать это:

  • inheritance_graph_attrs: словарь атрибутов графа graphviz для диаграмм наследования.
  • inheritance_node_attrs: словарь атрибутов узлов графической визуализации для диаграмм наследования.
  • inheritance_edge_attrs: словарь атрибутов ребер графвиза для диаграмм наследования.
person Sardathrion - against SE abuse    schedule 30.06.2015

Вы должны установить размер параметра внаследство_graph_attrs в conf.py, например:

inheritance_graph_attrs = dict(fontsize=12, size='"16.0, 20.0"')
person Marcin W.    schedule 26.04.2016

Я понимаю, что это старый пост, но, поскольку я наткнулся на него, пытаясь создать документацию по сфинксу с настраиваемыми графами наследования, я подумал, что включу ответ, который помог бы мне несколько дней назад. Ресурс, который мне больше всего помог при создании диаграмм наследования и изменении их внешнего вида, находился в Graphviz документация, которая очень полезна при установке этих параметров.

В таблице указаны каждый атрибут, компоненты, использующие этот атрибут, и значения компонента для пары "имя-значение". Итак, для каждого:

inheritance_graph_attrs = G
inheritance_node_attrs = N
inheritance_edge_attrs = E

Поэтому вы можете установить размер узлов в дюймах, используя:

inheritance_node_attrs = {height=1, width=1} 

Где начальная высота и ширина узла будут 1 дюйм, если не требуется больше места. Вы также можете увидеть все атрибуты, которые можно изменить в Graphviz, и способы их изменения в файле conf.py.

person RIchard Beddoes    schedule 08.08.2020