我想知道是否可以使用多种颜色来填充点。例如,在散点图中,我希望看到每个点的上半部分填充某种颜色,而下半部分则填充另一种颜色。如果可能的话,我还想将每个点的填充颜色对应到一些基础数据(例如,如果数据取值为x,则某些配对类型)。到目前为止,我考虑过两次绘图,使用两个椭圆分别进行填充,但没有成功。如果有人能够帮忙,我将不胜感激。
谢谢!
谢谢!
library(ggplot2)
p1 = ggplot(mtcars, aes(wt, mpg)) +
geom_point(shape="\u25D2", colour="red", size=3) +
geom_point(shape="\u25D3", colour="blue", size=3) +
geom_point(shape=1, colour="white", size=3.05) +
geom_point(shape=1, colour="white", size=2.8) +
theme_bw()
接下来,我们使用两个Unicode符号绘制半圆形的标记。另一半圆形没有边框(我只能找到并排而不是上下排列的符号)。但这些标记的缺点是,标记的中心与圆圈的中心偏移,因此必须手动调整这两个圆圈的位置,使它们互相对齐。
p2 = ggplot(mtcars) +
geom_point(aes(wt-0.027, mpg), shape="\u25D6", colour="red", size=3) +
geom_point(aes(wt+0.027, mpg), shape="\u25D7", colour="blue", size=3) +
theme_bw()
cairo_pdf("p1.pdf", family="Symbola", 4,4)
p1
dev.off()
cairo_pdf("p2.pdf", family="Symbola", 4,4)
p2
dev.off()
eipi10的第二个解决方案有以下评论:如果您使用Arial Unicode MS而不是Symbola,则水平偏移是不必要的。(感谢Laserhedvig发现这一点。) 因此,以下代码可以正常工作:
library(ggplot2)
my_plot = ggplot(mtcars) +
geom_point(aes(wt, mpg), shape="\u25D6", colour="red", size=3) +
geom_point(aes(wt, mpg), shape="\u25D7", colour="blue", size=3) +
theme_bw()
cairo_pdf("my_plot.pdf", family="Arial Unicode MS", 4,4)
my_plot
dev.off()