情节中的五彩点

时间:2017-03-28 15:45:47

标签: r colors points

我想添加多彩点的点,其中一半是蓝色的。一半是红色的。如果可能的话,我希望能够使用超过2种颜色,例如4个季度,每种颜色都有颜色。 那可能吗?

我知道我可以叠加几个不同大小的点,每个点都有一个颜色,从而形成一个同心的五彩点。但这不是我所追求的。

对于上下文,我将这些点用于地图中的城市。 这是一个小例子,每个城市都有一个单一的点。但我希望每个城市都有一个有两个半点的点,每一个都有一个颜色。

require(ggmap);

citiesnames=c("Madrid","Toledo","Valencia","Granada")

cities=str_c(citiesnames,"Spain",sep=", ");
geo=geocode(cities);
lon=geo$lon;
lat=geo$lat;
coord=mapproject(lon, lat,proj="mercator");

map("world","Spain",fill=T,col="ivory",proj="mercator");

points(coord$x[1], coord$y[1], pch=16, cex=1.2, col="black")
points(coord$x[2],coord$y[2], pch=16, cex=1.2, col="red")
points(coord$x[3], coord$y[3], pch=16, cex=1.2, col="blue")
points(coord$x[4], coord$y[4], pch=16, cex=1.2, col="green4")

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,你可以参考这个post做你想做的事。出于文档目的,我添加了一个解决问题的答案:

您可以使用以下两个功能将两个半圆(饼图)添加到图表中:

  upper.half.circle <- function(x,y,r,nsteps=100,...){  
    rs <- seq(0,pi,len=nsteps) 
    xc <- x+r*cos(rs) 
    yc <- y+r*sin(rs) 
    polygon(xc,yc,...) 
  } 

  lower.half.circle <- function(x,y,r,nsteps=100,...){ 
    rs <- seq(0,pi,len=nsteps) 
    xc <- x-r*cos(rs) 
    yc <- y-r*sin(rs) 
    polygon(xc,yc,...) 
  } 

稍后当你进行驾驶时,你应该设置asp = 1来获得半圈。

   plot(1, type="n",axes=F,xlab="", ylab="",xlim=c(0,200),ylim=c(0,200), asp = 1)
   upper.half.circle(15,170,10,nsteps=1000,col='red')
   lower.half.circle(15,170,10,nsteps=1000,col='blue')

以下是此代码的结果:

enter image description here

您可以稍后编辑小说以获取季度或任何您需要的小说。