在R中按数据帧的行进行绘图

在R中按数据帧的行进行绘图,r,dataframe,bar-chart,lines,R,Dataframe,Bar Chart,Lines,我有一张这样的桌子 hashtag Daily_Freq men women #a 10 6 4 #b 15 5 10 #c 20 8 12 我想为每个数据帧行(即每个标签)绘制男性和女性的频率。 在本例中,我想绘制3个条形图,每个条形图有两列-一列为男性,另一列为女性。 我如何才能做到这一

我有一张这样的桌子

         hashtag  Daily_Freq men women 
          #a          10       6     4  
          #b          15       5    10   
          #c          20       8    12  
我想为每个数据帧行(即每个标签)绘制男性和女性的频率。 在本例中,我想绘制3个条形图,每个条形图有两列-一列为男性,另一列为女性。
我如何才能做到这一点?

一种解决方案是使用
gather
ggplot2
作为:

#data
df <- read.table(text = "hashtag  Daily_Freq men women 
'#a'          10       6     4  
'#b'          15       5    10   
'#c'          20       8    12", header = T, stringsAsFactors = F)

library(tidyverse)
df <- df %>% select(-Daily_Freq) %>%
         gather(key = Gender, value, -hashtag)

library(ggplot2)
ggplot(df, aes(x=hashtag, y=value, fill=Gender)) +
geom_bar(stat='identity', position='dodge')

一种解决方案是使用
聚集
ggplot2
作为:

#data
df <- read.table(text = "hashtag  Daily_Freq men women 
'#a'          10       6     4  
'#b'          15       5    10   
'#c'          20       8    12", header = T, stringsAsFactors = F)

library(tidyverse)
df <- df %>% select(-Daily_Freq) %>%
         gather(key = Gender, value, -hashtag)

library(ggplot2)
ggplot(df, aes(x=hashtag, y=value, fill=Gender)) +
geom_bar(stat='identity', position='dodge')

使用
重塑2
中的
熔体
的解决方案如下:

library(ggplot2)
library(reshape2)

df <- read.table(text = "hashtag  Daily_Freq men women 
                    '#a'          10       6     4  
                    '#b'          15       5    10   
                    '#c'          20       8    12", 
                 header = TRUE)

ds <- melt(df, id.var = c("hashtag", "Daily_Freq"))

p <- ggplot(ds, aes(x=variable, y=value/Daily_Freq)) 
p <- p + geom_bar(stat='identity', 
                  position='dodge', 
                  aes(fill=hashtag)) 
p <- p + scale_colour_discrete()
p <- p + facet_grid(hashtag ~. )
show(p)
库(ggplot2)
图书馆(E2)

df利用
Reforme2
中的
melt
的解决方案如下:

library(ggplot2)
library(reshape2)

df <- read.table(text = "hashtag  Daily_Freq men women 
                    '#a'          10       6     4  
                    '#b'          15       5    10   
                    '#c'          20       8    12", 
                 header = TRUE)

ds <- melt(df, id.var = c("hashtag", "Daily_Freq"))

p <- ggplot(ds, aes(x=variable, y=value/Daily_Freq)) 
p <- p + geom_bar(stat='identity', 
                  position='dodge', 
                  aes(fill=hashtag)) 
p <- p + scale_colour_discrete()
p <- p + facet_grid(hashtag ~. )
show(p)
库(ggplot2)
图书馆(E2)
df在使用之前创建命名矩阵
使用,可以将表转换为2x3矩阵,每个性别一行,每个唯一的hashtag值一列

然后,将新创建的矩阵提供给
barplot()
中的
height
参数

#加载数据
df在使用之前创建命名矩阵
使用,可以将表转换为2x3矩阵,每个性别一行,每个唯一的hashtag值一列

然后,将新创建的矩阵提供给
barplot()
中的
height
参数

#加载数据

df但是我想要同时绘制3个图,每个图一个hashtags@Student1000如果您可以绘制并共享期望的图形,那么我可以帮助您。@Student1000使用
facet\u grid
查找另一个选项,但我希望同时绘制3个图形,每人一个hashtags@Student1000如果您可以绘制并共享预期的图形,那么我可以帮助您。@Student1000使用
facet\u grid