如何在反应性splom格子图中包装文本?

时间:2017-05-11 19:07:32

标签: r shiny scatter-plot lattice

在我的闪亮应用程序中,我让我的用户选择n个属性以在我的splom()调用中绘制,这基本上遵循以下步骤:

  1. 用户选择一个号码。
  2. 用户选择变量。
  3. 代码根据用户选择设置我的数据集。
  4. 通过一个非常简单的调用来调用Splom,类似于:lplot <- splom(data_subset)
  5. 但是,由于splom()中的面板是根据属性名称进行标记的(这是反应性的,因此我无法提前标记)并且名称很长,您可以&#39;读它们。

    有没有人知道是否有办法在splom面板输出中包装文本?包装将在属性无效值上完成,因此不会在字符串上完成。

    这就是我的输出:

    splom

1 个答案:

答案 0 :(得分:0)

步骤3 中进行子集化后,您可以操纵数据子集的名称以进行适当的换行。

## Subset the data in whatever way shiny does (here's a reproducible example)
irisSub <- subset(iris, select = grepl("Width", names(iris)))

然后

  1. 替换&#34;字&#34;带空格的分隔符。在您的示例中,您可能只需要"_"

    names(irisSub) <- gsub("\\.|_", " ", names(irisSub))
    
  2. 以相当窄的宽度包裹这些字符串。您可能需要在此处尝试其他宽度。

    wrapList <- strwrap(names(irisSub), width = 10, simplify = FALSE)
    
  3. 粘贴这些字符串并在其间插入换行符(\n)并将其分配给数据子集的名称

    names(irisSub) <- vapply(wrapList, paste, collapse = "\n", FUN.VALUE = character(1))
    
  4. splom 尊重换行符

    splom(irisSub)
    

    enter image description here