使用 ggplot2 更改密度曲线图上的标签键和标题

Change label keys and title on a density curve plot with ggplot2

我有一个密度图,代码如下:

p <- ggplot(data=paddling, aes(frequency, color=type, fill=type))
p <- p + geom_density(alpha=0.2)
p <- p + scale_x_continuous(limits=c(0, 1000),name='Frequency (Hz)')

我想更改图例键和图例标题。我尝试使用:

 p <- p + scale_fill_discrete(name='Paddling type',labels=c("Hands only", "Hands and feet"))

但它只是在另一个图例之上添加了另一个图例:

如有任何帮助,我们将不胜感激!谢谢!!

你所做的已经完成了一半。由于您使用了两种美学(填充和颜色),因此这两种都需要一个图例。因此,如果您更改图例标题和填充标签,则颜色图例不会更改并按原样绘制。因此,解决方案是添加一个 'scale_color_discrete':

#generate data

set.seed(123)
n=1000
paddling <- data.frame(frequency=runif(n,0,n),
                       type=sample(c("hand_only","with_feet"),n,T))


#plot 

p <- ggplot(data=paddling, aes(frequency, color=type, fill=type)) +
  geom_density(alpha=0.2)+
  scale_x_continuous(limits=c(0, 1000),name='Frequency (Hz)') +
  scale_fill_discrete(name='Paddling type',labels=c("Hands only", "Hands and feet"))+
  scale_color_discrete(name='Paddling type',labels=c("Hands only", "Hands and feet"))

p

如果您有很多映射、级别,这可能会有点麻烦。这是另一种方法:更改数据(列名和因子水平)

#note the backticks needed for space
paddling$`Paddling type` <- paddling$type
levels(paddling$`Paddling type`) 
levels(paddling$`Paddling type`) <- c("Hands only","Hands and feet")



p2 <- p <- ggplot(data=paddling, aes(frequency, color=`Paddling type`, fill=`Paddling type`)) +
  geom_density(alpha=0.2)+
  scale_x_continuous(limits=c(0, 1000),name='Frequency (Hz)')