如何使用變量來指定ggram中的列名我有個命令ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) )在一個函數里。但是我希望能夠使用函數的一個參數來選擇列作為顏色和組。我想要這樣的東西f <- function( column ) {
...
ggplot( rates.by.groups, aes(x=name, y=rate, colour= ??? , group=??? ) )}以便由參數來確定ggg圖中使用的列。例如,對于f(“main”),我們得到的效果是ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) )但是對于f(“性別”),我們得到的效果是 ggplot( rates.by.groups, aes(x=name, y=rate, colour=gender, group=gender) )有些事我試過了:ggplot( rates.by.groups, aes(x=name, y=rate, colour= columnName , group=columnName ) )不起作用。也沒有e <- environment() ggplot( rates.by.groups, aes(x=name, y=rate, colour= columnName , group=columnName ), environment=e )
3 回答
慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
aes_string:
f <- function( column ) {
...
ggplot( rates.by.groups, aes_string(x="name", y="rate", colour= column,
group=column ) )}f("majr")f(majr)"name""rate"
aes_string
ggplot( rates.by.groups, aes(x=name, y=rate, colour= get(column), group=get(column) ) )
HUWWW
TA貢獻1874條經驗 獲得超12個贊
ggplot2 > 3.0.0.datarates.by.groups
library(ggplot2)theme_set(theme_classic(base_size = 14))# created by @Moody_Mudskipperrates.by.groups <- data.frame(
name = LETTERS[1:3],
rate = 1:3,
mjr = LETTERS[c(4, 4, 5)],
gender = c("M", "F", "F"))f1 <- function(df, column) {
gg <- ggplot(df,
aes(x = name,
y = rate,
fill = .data[[column]],
group = .data[[column]])) +
geom_col() +
labs(fill = column)
return(gg)}plot_list <- lapply(list("gender", "mjr"), function(x){ f1(rates.by.groups, x) })plot_list#> [[1]]#> #> [[2]]
# combine all plotslibrary(egg)ggarrange(plots = plot_list,
nrow = 2,
labels = c('A)', 'B)'))- 3 回答
- 0 關注
- 798 瀏覽
添加回答
舉報
0/150
提交
取消
