【问题标题】:Plotting wordclouds in grid in R在 R 中的网格中绘制 wordcloud
【发布时间】:2018-12-07 12:25:27
【问题描述】:

我正在使用 wordcloud2 包来创建 wordcloud,但似乎找不到将它们绘制在网格中的方法。我尝试了 grid.arrange 但它会产生错误并且不允许我绘制云?

有什么解决办法吗?

这是我的代码

    # main wordcloud function
w1 <- wordcloud2(w_virgin, size = 0.8, shape = 'circle',
           rotateRatio = 0.5, minSize = 1)

w2 <- wordcloud2(w_united, size = 0.8, shape = 'circle',
           rotateRatio = 0.5, minSize = 1)

grid.arrange(w1, w2)

【问题讨论】:

  • 寻求帮助时,您应该包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出。给出您收到的确切错误消息。
  • @MrFlick 感谢您的反馈。下次我一定会这样做,并为此道歉。我承认我做的很匆忙,并没有输入你提到的所有信息。不过感谢您的评论。

标签: r word-cloud r-grid


【解决方案1】:

使用wordcloud,您只需排列以R为基数的图形par

par(mfrow=c(1,2)) # for 1 row, 2 cols
wordcloud(d1$word, d1$freq, max.words=100)
wordcloud(d2$word, d2$freq, max.words=100)

如果您有一个术语文档矩阵 (tdm),您可以像这样创建单词和频率的数据框:

library(tm)
v <- sort(rowSums(as.matrix(tdm)),decreasing=TRUE)
d1 <- data.frame(word=names(v),freq=v)

就像 MrFlick 说的那样,如果你能提供一个可重现的例子,那么有人可能能够更准确地回答你的问题。

【讨论】:

  • 谢谢@mysteRious,我已经用 wordcloud 包尝试过你的解决方案,它确实有效。它似乎不适用于 wordcloud2 包,这是一个不同的包。您认为还有其他方法吗?
  • 我也遇到了麻烦......来自wordcloud2 的输出似乎是grob-抗性的。如果有什么可行的,我会告诉你的。
【解决方案2】:

wordcloud 包中的wordcloud 函数直接绘图而不返回任何内容,这意味着您几乎只能使用par 修改R 输出设备。

如果您使用的是 ggplot2,您可以使用来自 ggwordcloud 的近似替换 ggwordcloud,它会输出一个 ggplot 对象,该对象可以与 grid.arrange from gridExtra 一起排列为 grob。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多