簡體   English   中英

如何使用一維數據框在ggplot aes中設置x,y?

[英]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軸應該是colacolbcolc ,Y軸應該是0.20.10.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')

您需要更改數據框的尺寸

library(ggplot2)
ggplot(stack(bad), aes(ind, values)) + geom_bar(stat='identity')

在此處輸入圖片說明

或者,如果你想要去的tidyverse方式,我們可以使用gather以及

ggplot(tidyr::gather(bad), aes(key, value)) + geom_bar(stat='identity')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM