![](/img/trans.png)
[英]How to use ggplot2 inside a loop for plotting x values from one dataframe and y from other
[英]How to set x,y in ggplot aes with one dimension dataframe?
df <- data.frame(
cola = c('1',NA,'c','1','1','e','1',NA,'c','d'),
colb = c("A",NA,"C","D",'a','b','c','d','c','d'),
colc = c('a',NA,'c','d','a',NA,'c',NA,'c','d'),stringsAsFactors = TRUE)
bad<-lapply(df, function(x) sum(is.na(x))/nrow(df))
bad<-as.data.frame(bad)
我想使对一维数据框的条形图bad
。
X轴应该是cola
, colb
, colc
,Y轴应该是0.2
, 0.1
, 0.3
。 然后我尝试但失败了:
ggplot(bad,aes(x=colnames(bad), y=bad[1,])) +
geom_bar(stat='identity')
对于一维数据帧,如何设置aes(x=?,y=?)
?
您需要将数据帧转换为长格式。 您可以使用reshape2的melt函数。
dab <- reshape2::melt(bad)
> dab
variable value
1 cola 0.2
2 colb 0.1
3 colc 0.3
ggplot(dab) + geom_bar(aes(x=variable, y=value, fill=variable), stat='identity')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.