R 我有一个已排序的数据帧,但当我绘制它时,顺序就消失了。[右]

R 我有一个已排序的数据帧,但当我绘制它时,顺序就消失了。[右],r,ggplot2,R,Ggplot2,我有一个已排序的帧,但是当我使用ggplot来打印它时,单词并没有像在数据帧中那样以正确的顺序出现。代码如下: library(ggplot2) df<-data.frame(word=c("play","win","offer","http","right","internet"),frequency=c(321,355,123,899,564,433),type=c("nonspam","nonspam","spam","spam","spam","spam")) df=df[ord

我有一个已排序的帧,但是当我使用ggplot来打印它时,单词并没有像在数据帧中那样以正确的顺序出现。代码如下:

library(ggplot2)

df<-data.frame(word=c("play","win","offer","http","right","internet"),frequency=c(321,355,123,899,564,433),type=c("nonspam","nonspam","spam","spam","spam","spam"))
df=df[order(df$type, df$frequency, decreasing = TRUE),]

ggplot(df, aes(x=frequency, y=word)) +
  geom_segment(aes(yend=word), xend=0, color='grey50') +
  geom_point(size=3, aes(color=type)) + 
  scale_color_brewer(palette='Set1', limits=c('Spam', 'non-Spam'), guide=F) +
  theme_bw() +
  theme(panel.grid.major.y = element_blank()) +
  facet_grid(type ~ ., scales='free_y', space='free_y')
库(ggplot2)

df您必须对变量的级别进行排序。当您使用ggplot打印某些内容时,数据帧中的顺序并不重要(它使用级别顺序)。您点什么菜?按姓名或者按频率?

如上所述,您必须设置系数:

df <- data.frame(word=c("play","win","offer","http","right","internet"),
                 frequency=c(321,355,123,899,564,433),
                 type=c("nonspam","nonspam","spam","spam","spam","spam"))  

your_order <- order(df$frequency)
df$word <- factor(df$word, levels = df$word[your_order])

ggplot(df, aes(x=frequency, y=word)) +
  geom_segment(aes(yend=word), xend=0, color='grey50') +
  geom_point(size=3, aes(color=type)) + 
  scale_color_brewer(palette='Set1', limits=c('Spam', 'non-Spam'), guide=F) +
  theme_bw() +
  theme(panel.grid.major.y = element_blank()) +
  facet_grid(type ~ ., scales='free_y', space='free_y')

df我改变了它,但又出现了同样的问题..参见这里:按频率,但每种类型。即,垃圾邮件的第一行是899,最后一行是123。然后355和321用于非垃圾邮件。但我试着重新订购,但失败了,你能告诉我怎么做吗?