【问题标题】:qplot stack bar chartqplot 堆栈条形图
【发布时间】:2013-08-06 20:44:18
【问题描述】:

我一直在尝试创建条形图,但我需要帮助:

name    <- c('t1','t2')
reading <- c('yyyggrggryyy','grgrgrrryyyy')
df <- data.frame(name, reading)

读取值只能是'y'、'g'或'r'并且字符串的长度总是12。 我试图将读数“转换”为每个名称的堆积条形图,如下所示:

t1 堆积条:

Color  Height
------ ------
yellow 3
green  2
red    1
green  2
red    1
yellow 3

谢谢

【问题讨论】:

  • 您究竟是如何尝试进行转换的?什么不起作用?

标签: r charts ggplot2 bar-chart


【解决方案1】:
> df <- data.frame(name=rep(name, each=12), 
                   reading=unlist(sapply(reading, strsplit, split="")))
> df
               name reading
yyyggrggryyy1    t1       y
yyyggrggryyy2    t1       y
yyyggrggryyy3    t1       y
yyyggrggryyy4    t1       g
snipped
grgrgrrryyyy4    t2       r
grgrgrrryyyy5    t2       g
grgrgrrryyyy6    t2       r
grgrgrrryyyy7    t2       r
grgrgrrryyyy8    t2       r
grgrgrrryyyy9    t2       y
grgrgrrryyyy10   t2       y
grgrgrrryyyy11   t2       y
grgrgrrryyyy12   t2       y

 qplot(reading,  data=df, geom="bar")+facet_grid(~name)

如果你想要一个堆叠的条形图,那么你需要传递一个与你想要堆叠的分组变量相同的 x 参数:

qplot(x=name,  data=df)+facet_grid(~name)+geom_bar(aes(fill = reading))

【讨论】:

  • 谢谢!试过了,效果很好......但我还没有找到一种方法让 t1 成为一个单条,堆叠 3 个黄色单位,顶部有 2 个绿色,1 个红色,2 个绿色,1 个红色和 3 个黄色。你觉得qplot有这个能力吗?
  • 我举了一个使用 faceting 的例子,但你可以放弃 facet_grid 命令,仍然得到一个堆叠的条形图:qplot(x=name, data=df, geom="bar", fill=reading)
  • 工作得很好,通过一些小的修改,我可以创建一个漂亮的图表!我仍在测试 geom_bar,它似乎总是对读数进行分组、堆叠并创建图表。 geom_bar 可以像 tinyurl.com/n8zjt9u 这样重复颜色吗?
【解决方案2】:
library(ggplot2)
m<-strsplit(as.character(df$reading),"") # split the strings 
data1<-as.data.frame(table(m[[1]])) # create dataframe for first element of reading
data2<-as.data.frame(table(m[[2]])) # create dataframe for second element of reading
t<-rep(c("t1","t2"),c(dim(data1)[1],dim(data2)[1])) 
t<-as.data.frame(t) # create dataframe of t which gives t1 and t2
mydata<-cbind(rbind(data1,data2),t)  #final data for plot
mydata$reading<-mydata$Var1
qplot(reading, data=mydata, geom="bar",weight=Freq)+facet_grid(~t)

【讨论】:

    猜你喜欢
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多