![](/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.