Я использую метки замещения (@@) с диаграммой диаграммы и синтаксиса Graphviz. Я видел предыдущие вопросы об обосновании меток узлов, таких как эта , когда метки представляют собой встроенный текст, но мне интересно, как обосновать текст узла, сгенерированный из многострочной метки замещения. Более конкретно, для метки в приведенном ниже воспроизводимом примере я хочу, чтобы столбец «main», то есть метки первого и третьего прямоугольника, оставался по центру, а метки многострочного узла, такие как крайний правый прямоугольник, выравнивались влево (значение а также подзначения). Поскольку я указываю разрывы строк в метках подстановки, я попытался использовать двойную обратную косую черту sh \ l вместо \ n без успеха. Кроме того, я хотел бы выделить заголовки (в воспроизводимом примере, первое значение, второе значение и строки третьего значения), но не выделять любые значения. Любая помощь будет принята с благодарностью. Спасибо!
library(DiagrammeR)
library(DiagrammeRsvg)
a <- 100
x <- 50
b <- 30
d <- 20
grViz("
digraph a_nice_graph {
node[fontname = Helvetica, shape = box, width = 4, fontcolor = darkslategray]
firstvalue[label = '@@1']
secondvalue[label = '@@2']
thirdvalue[label = '@@3']
blank[label = '', width = 0.01, height = 0.01]
{ rank = same; blank secondvalue }
firstvalue -> blank [dir = none]
blank -> secondvalue[minlen = 9]
blank -> thirdvalue
}
[1]: paste0('First value (n = ', a, ')')
[2]: paste0('Second value (n = ', a-x, ')\\nSubvalue = ', b, '\\nSubvalue = ', d, '')
[3]: paste0('Third value (n = ', x, ')')
")