ble*_*man 2 r legend ggplot2 legend-properties
使用以下数据框:
sdf<-data.frame(hours=gl(n=3,k=1,length=9,labels=c(0,2,4)),
count=c(4500,1500,2600,4000,800,200,1500,50,20),
machine=gl(n=3,k=3,length=9,labels=c("A","B","C")))
Run Code Online (Sandbox Code Playgroud)
可以使用以下任一脚本生成以下图表:
ggplot(data=sdf,aes(x=hours,y=count,group=machine,fill=machine))+
geom_area(data=sdf[sdf$machine=="A",])+
geom_area(data=sdf[sdf$machine=="B",])+
geom_area(data=sdf[sdf$machine=="C",])
ggplot(data=sdf,aes(x=hours,y=count,group=machine,fill=machine))+
geom_area(position="dodge")
Run Code Online (Sandbox Code Playgroud)

但是,当填充颜色更改时,图例中的项目将消失.
ggplot(data=sdf,aes(x=hours,y=count,group=machine,fill=machine))+
geom_area(data=sdf[sdf$machine=="A",])+
geom_area(data=sdf[sdf$machine=="B",],fill="darkorchid")+
geom_area(data=sdf[sdf$machine=="C",])
Run Code Online (Sandbox Code Playgroud)

理想情况下,图例应显示颜色变化.
问题:什么脚本可以在图例中创建项目以及为这些项目提供颜色控制?
您可以使用scale_X _manual(values=(无论如何)调整分配给任何美学的值).在这里你想要的scale_fill_manual.
ggplot(data=sdf,aes(x=hours,y=count,group=machine,fill=machine))+
geom_area(position="dodge") +
scale_fill_manual(values=c("red", "darkorchid", "green"))
Run Code Online (Sandbox Code Playgroud)

请注意,作为一项规则,您希望ggplot为您分组数据,就像您在第二次ggplot调用中所做的那样(这就是group参数的作用).分别提供每个"切片"数据,正如您在第一个示例中所做的那样,几乎违背了目的ggplot2,应该避免.
| 归档时间: |
|
| 查看次数: |
1675 次 |
| 最近记录: |