示例数据集:
A <- c('a','b', 'c','d','e')
types <- factor(A)
B <- c(1,2,3,4,5)
C <- c(6,7,8,9,10)
D <- c(1,2,1,2,3)
ABC <- data.frame(B,C,D,types)
library(ggplot2)
ggplot(ABC, aes(x=B ,y=C ,size=D, colour=as.factor(types),label=types, shape=as.factor(types))) +
geom_point()+geom_text(size=2, hjust=0,colour="black", vjust=0) +
scale_size_area(max_size=20, "D", breaks=c(100,500,1000,3000,5000)) +
scale_x_log10(lim=c(0.05,10),breaks=c(0.1,1,10))+ scale_y_continuous(lim=c(0,30000000)) +
scale_shape_manual(values=c(15,18,16,17,19))`
绘制这个图,你会有一些因素a-e,它们有颜色和形状。
在我的代码中,我使用scale_shape_manual来设置形状,它们是按顺序定义的,即因子的顺序是a,b,c,d,e,我的值是15,18,16,17,19,所以a=15(正方形),b=18等
我想按因子设置这些形状。我的数据每天都在变化,因子的顺序也不同,但我总是希望相同的因子具有相同的形状。
很明显,这段代码不起作用,但类似于:scale_shape_manual(values=('a'=15, 'b'=18, 'c'=16, 'd'=17, 'e'=19))
如果我也能为颜色做同样的事情,那将是很有帮助的。
2条答案
按热度按时间z2acfund1#
如果我没有理解错的话,通常会有(最多)五个类别“a”-“e”,并且您希望这些类别的形状和颜色在数据集之间保持一致。
gg_color_hue(...)
来自here):drnojrws2#
我敢肯定,这是不再相关的OP,但最好的解决方案,我发现这个问题是简单的比什么是目前张贴和几乎写入问题本身。
操作员希望使用类似的方法指定手动定义的形状或颜色
“
scale_shape_manual(values=('a'=15, 'b'=18, 'c'=16, 'd'=17, 'e'=19))
“只要求赋值作为向量传递,
scale_shape_manual(values = c('a'=15, 'b'=18, 'c'=16, 'd'=17, 'e'=19))
如果你想自动生成颜色,jlhoward的答案更好。而我下面提供的脚本需要更少的代码行。用户选择。