我正在绘制一系列数据点,为此我需要非常具体的符号/形状来代表每个国家(它实际上不是国家,但真正的群体没有任何意义 - 我' m复制旧图并希望保持符号一致)。有九个不同的国家可以策划。到目前为止,我发现这样做的最简单方法是在实际数据帧中编码我想要的符号,如下所示:
Point y x Country
V 0.316 0.073 UK
P 0.284 0.053 USA
% 0.284 0.061 Germany
+ 0.314 0.072 France
| 0.268 0.075 Spain
h 0.313 0.0758 Canada
# 0.121 0.0623 Australia
i 0.234 0.0765 India
C 0.213 0.059 Norway
然后密谋:
ggplot(data, aes(x, y, label = Point, colour = Point)) + geom_text()
但对于传奇来说,这并不是特别好:
我怎么能这样做,以便积分成为传奇的符号,然后我可以将这些国家作为传奇的标签?
答案 0 :(得分:3)
将shape=country
放入aes()
并使用scale_shape_manual()
x=rnorm(10,1,2)
y=rnorm(10,1,2)
country=letters[1:10]
data=cbind.data.frame(x,y,country)
require(ggplot2)
ggplot(data,aes(x,y,shape=country))+
geom_point(size=6)+
scale_shape_manual(values=c("V","%","µ","@","#","V","%","µ","@","#"))