R中的堆积条形图

时间:2013-11-21 16:06:42

标签: r csv stacked-chart

我有一个像下面这样的csv文件,我想制作一个堆积条形图,其中x轴是链接列,y轴显示频率,每个条形图基于Freq_E和Freq_S进行分组。当我阅读csv并将其交给barplot时它不起作用。我搜索了很多,但所有的例子数据都是列联表的形式。我不知道该怎么做......

           link  Freq_E  Freq_S
1          tube.com 214 214
2          list.net 120 120
3          vector.com 119 118
4          4cdn.co  95  96

2 个答案:

答案 0 :(得分:4)

“它不起作用”不是我熟悉的R中的错误消息,但我猜你的问题是你试图在barplot上使用data.frame你应该使用matrixvector

假设您的data.frame被称为“df”(如Codoremifa答案开头所定义),您可以尝试以下方法:

x <- as.matrix(df[-1])   ## Drop the first column since it's a character vector
rownames(x) <- df[, 1]   ## Add the first column back in as the rownames
barplot(t(x))            ## Transpose the new matrix and plot it

enter image description here

答案 1 :(得分:3)

您应该查看优秀的ggplot2库,请尝试使用此代码段作为示例 -

df <- read.table(textConnection(
'link  Freq_E  Freq_S
tube.com 214 214
list.net 120 120
vector.com 119 118
4cdn.co  95  96'), header = TRUE)

library(ggplot2)
library(reshape2)

df <- melt(df, id = 'link')
ggplot(
   data = df,
   aes(
      y = value, 
      x = link, 
      group = variable, 
      shape = variable, 
      fill = variable
   )
) +
geom_bar(stat = "identity")