常规气泡图的图例
示例数据就直接用内置的鸢尾花的数据集了
代码语言:javascript复制library(ggplot2)
colnames(iris)
ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))
geom_point(aes(size=Petal.Length,color=Species))
guides(color=F)
scale_size_continuous(range = c(5,10),
breaks = c(2,4,6))
image.png
image.png
那如何变成如上这种空心的圆呢?
代码语言:javascript复制我开始想复杂了,以为需要去图例相关的参数里进行设置,原来直接更改点的形状就好了,给shape参数设置成21就好了
ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))
geom_point(aes(size=Petal.Length,color=Species),
shape=21)
guides(color=F)
scale_size_continuous(range = c(5,10),
breaks = c(2,4,6))
image.png
代码语言:javascript复制这样的话图上的点也都变成空心的了,如果想把图上的点设置成实心的,就再增加一个fill参数就好了
ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))
geom_point(aes(size=Petal.Length,
color=Species,
fill=Species),
shape=21)
guides(color=F,fill=F)
scale_size_continuous(range = c(5,10),
breaks = c(2,4,6))
image.png
代码语言:javascript复制这里还可以看到图例是带灰色背景的,如果想要去掉怎么办呢?答案是在主题里设置
legend.key
参数
ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width))
geom_point(aes(size=Petal.Length,
color=Species,
fill=Species),
shape=21)
guides(color=F,fill=F)
scale_size_continuous(range = c(5,10),
breaks = c(2,4,6))
theme(legend.key = element_blank())
image.png
这里的key对应的中文意思是什么呢?
image.png
添加椭圆的分组边界
用到的是stat_ellipse()
函数
ggplot(data=iris,aes(x=Sepal.Length,
y=Sepal.Width,
color=Species))
geom_point()
theme(legend.key = element_blank())
stat_ellipse(aes(x=Sepal.Length,
y=Sepal.Width,
color=Species,
fill=Species),
geom = "polygon",
alpha=0.5)
image.png
添加圆形的分组边界
用到的是ggforce
这个包里的geom_circle()
函数
library(ggplot2)
library(ggforce)
colnames(iris)
ggplot()
geom_point(data=iris,aes(x=Sepal.Length,
y=Sepal.Width,
color=Species))
theme(legend.key = element_blank(),
panel.background = element_blank(),
panel.border = element_rect(color="black",
fill = "transparent"))
geom_circle(aes(x0=5,y0=3.5,r=1),
fill="blue",
alpha=0.2,
color="red")
xlim(2,8)
ylim(2,8)
geom_circle(aes(x0=7,y0=3,r=1),
fill="green",
alpha=0.2,
color="red")