我嘗試了各種選項,但我找不到實作自定義圖例外觀的方法(除非我將圖形匯出到 power point 并在那里編輯它......)。我希望圖例如下圖所示,并想知道這是否可能:

我不希望對圖形本身進行任何更改:

這是我的示例資料和代碼:
df = data.frame(sex = c(1,1,1,1,1, 2,2,2,2,2),
age_cat = c(1,1,1, 2,2,2, 1,1,1, 2),
score_type = c(1,2, 1,2, 1,2, 1,2, 1,2),
score = c(25,28,18,20,30, 37,40,35,43,45))
df$sex <- factor((df$sex))
df$age_cat <- factor((df$age_cat))
df$score_type <- factor((df$score_type))
windows(width=7, height=7)
library(ggplot2)
df %>%
ggplot( aes(x=score_type, y=score))
geom_boxplot(aes(color=sex),outlier.shape = NA, size=1.5, show.legend=T)
geom_point(aes(color=sex, shape = age_cat, group = sex),
position=position_jitterdodge(dodge.width=0.9), size=3, show.legend=F)
scale_color_manual(values=c("#0072B2", "#CC79A7"), name="",
labels=c("Male", "Female"))
scale_shape_manual(name="", labels=c('Younger', 'Older'),
values=c(16, 17))
theme_bw()
theme(panel.border = element_blank(), axis.ticks = element_blank(),
legend.position=c(0.9, 0.65), legend.text=element_text(size=11),
legend.title=element_text(size=11.5),
panel.grid.major.x = element_blank() ,
plot.title = element_text(size=11, face = "bold"),
axis.title=element_text(size=13),
axis.text.y = element_text(size=11),
axis.text.x = element_text(size=11),
plot.margin = unit(c(0.5,0.2,0,0.2), "cm"))
labs(title= "", x = "",y = "Score")
scale_y_continuous(breaks=c(0, 20, 40, 60, 80, 100),
labels=c('0', '20', '40', '60', '80', '100'))
expand_limits(x=5, y=70)
scale_x_discrete(labels = c("A", "B"))
coord_cartesian(clip = "off")
uj5u.com熱心網友回復:
您可以通過以下方式達到您想要的結果
show.legend=FALSE從下降geom_point- 使用覆寫圖例中顯示的形狀
guides(shape = guide_legend(override.aes = list(shape = c(1, 2))))
library(ggplot2)
ggplot(df, aes(x = score_type, y = score))
geom_boxplot(aes(color = sex), outlier.shape = NA, size = 1.5)
geom_point(aes(color = sex, shape = age_cat, group = sex),
position = position_jitterdodge(dodge.width = 0.9), size = 3
)
scale_color_manual(
values = c("#0072B2", "#CC79A7"), name = "",
labels = c("Male", "Female")
)
scale_shape_manual(
name = "", labels = c("Younger", "Older"),
values = c(16, 17)
)
theme_bw()
theme(
panel.border = element_blank(), axis.ticks = element_blank(),
legend.position = c(0.9, 0.65), legend.text = element_text(size = 11),
legend.title = element_text(size = 11.5),
panel.grid.major.x = element_blank(),
plot.title = element_text(size = 11, face = "bold"),
axis.title = element_text(size = 13),
axis.text.y = element_text(size = 11),
axis.text.x = element_text(size = 11),
plot.margin = unit(c(0.5, 0.2, 0, 0.2), "cm")
)
labs(title = "", x = "", y = "Score")
scale_y_continuous(
breaks = c(0, 20, 40, 60, 80, 100),
labels = c("0", "20", "40", "60", "80", "100")
)
expand_limits(x = 5, y = 70)
scale_x_discrete(labels = c("A", "B"))
coord_cartesian(clip = "off")
guides(shape = guide_legend(override.aes = list(shape = c(1, 2))))

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/420808.html
標籤:
