GGplot 2输出为空白

时间:2019-07-18 16:45:07

标签: r ggplot2 plot

我正在使用整洁的文本指南进行文本挖掘,并更改为用于我自己的数据的代码。

我正处于绘制数据集中最常用单词的阶段。我已经设法将它们放入数据框。

我尝试更改代码的某些部分,但这无济于事,因为我不确定每一位都在做什么。我也在网上到处看,也找不到答案!

我的数据框如下:

# A tibble: 1,343 x 2
   word            n
   <chr>       <int>
 1 reminders     104
 2 check         100
 3 checks        100
 4 mot            87
 5 car            82
 6 vehicle        79
 7 send           78
 8 people         73
 9 maintenance    44
10 vehicles       42

和绘制最常用单词的代码如下:

library (ggplot2)

frequentwordsstop  %>%
  count(word, sort = TRUE) %>%
  filter(n > 40) %>% 
  mutate(word = reorder(word, n)) %>%
  ggplot(aes(word, n)) +
  geom_col() +
  xlab (NULL) +
  coord_flip()

我得到的是x轴标签上带有'n'的空白方块。就是这样!

我没有收到任何错误消息。我得到的是x轴标签上带有'n'的空白方块。就是这样!

2 个答案:

答案 0 :(得分:0)

因此,我已经能够以非tidyverse的方式生成绘图,并将其发布为答案,这样我就可以包括绘图并可以包含代码块。这不是实际答案。

# Loading in your data
z <- " 1 reminders     104
 2 check         100
 3 checks        100
 4 mot            87
 5 car            82
 6 vehicle        79
 7 send           78
 8 people         73
 9 maintenance    44
10 vehicles       42"
df <- read.table(text = z)[,-1] # Drop rownumbers

# Fix names
colnames(df) <- c("word", "n")

# Reorder factor
df$word <- factor(df$word, levels = df$word[order(df$n)])

ggplot(df, aes(word, n)) +
  geom_col() +
  xlab(NULL) +
  coord_flip()

enter image description here

答案 1 :(得分:0)

如果您的数据如下所示:

library(tidyverse)

df <- tribble(~word, ~n,
              "reminders",     104,
              "check",         100,
              "checks",        100,
              "mot",            87,
              "car",            82,
              "vehicle",        79,
              "send",           78,
              "people",         73,
              "maintenance",    44,
              "vehicles",       42)

df
#> # A tibble: 10 x 2
#>    word            n
#>    <chr>       <dbl>
#>  1 reminders     104
#>  2 check         100
#>  3 checks        100
#>  4 mot            87
#>  5 car            82
#>  6 vehicle        79
#>  7 send           78
#>  8 people         73
#>  9 maintenance    44
#> 10 vehicles       42

那么您已经算过了;字数存储在n列中。您无需再次使用count(),实际上,如果尝试尝试,您将获得无意义的结果,听起来像您已经体验过了!

由于您已经计算了词频,因此您可以将结果直接输入到剩下的代码中,以制作您感兴趣的绘图。

df %>%
  filter(n > 40) %>% 
  mutate(word = reorder(word, n)) %>%
  ggplot(aes(word, n)) +
  geom_col() +
  xlab (NULL) +
  coord_flip()  

reprex package(v0.3.0)于2019-08-03创建