使用 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)')
我有一个密度图,代码如下:
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)')