【问题标题】:Visualizing dispersion of textual data可视化文本数据的分散
【发布时间】:2019-03-18 09:11:18
【问题描述】:

我正在尝试可视化文本数据如何在句子中的位置分布。这是一些模拟数据:

# create mock data:
dfmock <- data.frame(letter = c(sample(letters[1:3], 25, replace = T)),
                 position = c(rep(1, 5), rep(2, 5), rep(3, 5), rep(4, 5), rep(5, 5))
                 ) 

对于情节,我首先创建一个虚拟框架:

# create dummy data frame for plot:
dummytest <-data.frame(slots = 1:5, rows = 1:5)

然后绘制虚拟框架的轮廓:

# plot:
plot(dummytest$rows ~ dummytest$slots, type="n", frame=F, axes=F)
axis(1, at=seq(1:5), labels=unique(dfmock$position))

现在我想强调一下,比如项目“a”的出现;为此,我定义了一个循环并使用 text() 函数使用红色实线突出显示“a”并将其他所有内容打印为灰色:

# print "a" in positions:
for(i in unique(dfmock$position)){
text(i, 1:5, "___", cex=1.75,
   col = ifelse(dfmock[dfmock$letter=="a",]$position==i, "red", "grey"))
}

在制作绘图时,每个位置显示的高光数量错误。我无法弄清楚这是为什么。非常感谢您的帮助!

【问题讨论】:

    标签: r for-loop visualization


    【解决方案1】:

    我不是你想要的 100% 的输出,但从上面猜测这可能会解决它:

    使用您的代码设置虚拟数据帧

    # create mock data:
    dfmock <- data.frame(letter = c(sample(letters[1:3], 25, replace = T)),
                         position = c(rep(1, 5), rep(2, 5), rep(3, 5), rep(4, 5), rep(5, 5))
    ) 
    
    # create dummy data frame for plot:
    dummytest <-data.frame(slots = 1:5, rows = 1:5)
    

    再次绘制数据

    # plot:
    plot(dummytest$rows ~ dummytest$slots, type="n", frame=F, axes=F)
    axis(1, at=seq(1:5), labels=unique(dfmock$position))
    

    修复:

    您的 FOR 循环似乎遍历了错误的数据,因此您的 ifelse 返回的逻辑向量并不总是与您的绘图数据具有相同的维度。

    # print "a" in positions:
    for(i in dfmock$position){
      text(i, dummytest$rows, "___", cex=1.75,
           col = ifelse(dfmock[dfmock$position==i,]$letter=="a", "red", "grey"))
    }
    

    这为 dfmock 生成了以下 PLOT,如下所示:

    > dfmock[dfmock$letter=="a",]
       letter position
    4       a        1
    8       a        2
    12      a        3
    13      a        3
    14      a        3
    21      a        5
    25      a        5
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      • 2013-11-01
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多