R ggplot图例显示矩形而不是直线

Mas*_*oud 0 r ggplot2

我正在尝试绘制某个平均值的正态分布密度。问题是图例显示矩形而不是线条。输出如下:

在此输入图像描述

如何解决这个问题?这是我的代码:

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)

teu*_*and 6

您可以将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)