我正在尝试绘制某个平均值的正态分布密度。问题是图例显示矩形而不是线条。输出如下:
如何解决这个问题?这是我的代码:
library(dplyr)
library(ggplot2)
library(tidyr)
n=100;kseq<-c(1.5,2,3,5,7)
df1<-matrix(0,nrow=n,ncol=length(kseq))
for(i in 1:length(kseq)){
df1[,i]<-rnorm(n,kseq[i])
}
colnames(df1)<-paste("k=",kseq,sep="")#paste("v",1:length(kseq),sep="")
df1<-as.data.frame(df1)
df2<-df1 %>% pivot_longer(cols=1:5, names_to = "group",values_to = "value")
df2<- df2 %>% mutate( groupname=case_when(
group=="v1"~"k=1.5",
group=="v2"~"k=2",
group=="v3"~"k=3",
group=="v4"~"k=5",
group=="v5"~"k=7"))
ggplot(df2,aes(x=value, linetype=group)) + geom_density(lwd=1.05) +
labs(x="",y="",main="jhfu")+ labs(linetype='') +
theme(legend.key.size = unit(1.5, 'cm'),legend.text = element_text(size=15),
legend.justification = c(1, 0))+
scale_linetype_manual(labels = colnames(df1), values = c(4,1,5,2,3)) +
theme_light()
Run Code Online (Sandbox Code Playgroud)
您可以将key_glyph层的参数设置为不同类型的键,通常是draw_key_*()函数系列之一。请参阅?draw_key参考资料 中的一些选项。
为简洁起见,简化示例:
library(ggplot2)
ggplot(mtcars, aes(wt, linetype = factor(cyl))) +
geom_density(key_glyph = draw_key_path)
Run Code Online (Sandbox Code Playgroud)

由reprex 包于 2021 年 8 月 10 日创建(v1.0.0)