在ggplot2中的两个位置之间绘制曲线

姆舍尔

我正在绘制一张有关从美洲到荷兰的出口的地图。为了使我的数据可视化,我想用箭头绘制一个从美洲国家到荷兰的地图。我使用cshapes世界地图和ggplot2。

data = data.frame("Country.name" = c("Brazil","USA","Canada","Paraguay","Uruguay"), "lng" =    
c(14.23,37,56.13,-23.44,-32.52), "lat" = c(-51.92,-95.71,-106.34,-58.44,-55.77))

require(cshapes)
cshp.data = cshp(date=as.Date("2012-1-1"), useGW=TRUE)
region.data.frame = fortify(cshp.data, region = "ISO1AL3")

ggplot(region.data.frame) + geom_polygon(aes(long,lat,group=group)) +
geom_segment(data = data, aes(x = lat, y = lng, xend= (5.29 - 0.1 * (5.29 - lat)), yend= (52.13 - 0.1 * (52.13 - lng))),
arrow=arrow(length=unit(0.5,"cm"), angle = 45, type = "closed"))

我发现直线绘制时这些线重叠。这很丑。因此,我正在寻找一种在ggplot2中的坐标之间绘制曲线的方法,以使它们不重叠。

特洛伊

我不能运行cshapes出于某种原因,但这里有一个如何建立使用曲线的例子curveGrob()grid包和ggplot2annotation_custom()功能。它给您很大的灵活性。PS:大多数参数只是默认值。编辑-更新为显示2条曲线。

require(grid)
g<-qplot(c(0,10),c(0,10))
myCurve<-curveGrob(0, 0, 1, 1, default.units = "npc",
               curvature = 0.3, angle = 90, ncp = 20, shape = 1,
               square = FALSE, squareShape = 1,
               inflect = FALSE, arrow = arrow(), open = TRUE,
               debug = FALSE,
               name = NULL, gp = gpar(), vp = NULL)

myCurve2<-curveGrob(0, 0, 1, 1, default.units = "npc",
               curvature = -0.3, angle = 60, ncp = 10, shape = 1,
               square = FALSE, squareShape = 1,
               inflect = FALSE, arrow = arrow(), open = TRUE,
               debug = FALSE,
               name = NULL, gp = gpar(), vp = NULL)

g + 
  annotation_custom(grob=myCurve,0,10,0,10) + # plot from 0,0 to 10,10
  annotation_custom(grob=myCurve2,2.5,6,2.5,6)   # plot from 2.5,2.5 to 6,6

#REFERENCE>>http://stat.ethz.ch/R-manual/R-devel/library/grid/html/grid.curve.html

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在iOS中的GMSMapView上的两个位置之间绘制路线

来自分类Dev

在ggplot2中的两个小平面之间绘制线条

来自分类Dev

在两个位置之间绘制单元格

来自分类Dev

Swift-在字符串的两个位置之间查找子字符串

来自分类Dev

如何获取Windows Phone 8.1中两个位置之间的距离

来自分类Dev

用于计算树上两个位置之间距离的性能?

来自分类Dev

如何在谷歌地图中的两个位置之间绘制路径

来自分类Dev

Swift:使用Google Maps获取两个位置之间的旅行时间

来自分类Dev

获取两个位置之间的路线点

来自分类Dev

使用Google Map Android API V2在两个位置之间进行路由

来自分类Dev

mysql中的ST_Distance_Sphere无法提供两个位置之间的准确距离

来自分类Dev

R中地球上两个位置之间的距离

来自分类Dev

检查两个位置之间的距离,以KM为单位

来自分类Dev

获取两个位置之间的距离和时间的功能

来自分类Dev

寻找两个位置之间的距离

来自分类Dev

bing映射两个位置之间的直线

来自分类Dev

在两个位置之间绘制单元格

来自分类Dev

如何在iPhone应用程序中找到两个位置之间的方向?

来自分类Dev

如何使用GMSMapView在两个位置之间找到最短路径并绘制锯齿形路径?

来自分类Dev

Swift-在字符串的两个位置之间查找子字符串

来自分类Dev

给定纬度和经度,计算两个位置之间的行驶/行驶距离(必应地图)

来自分类Dev

使用Google Maps Api(JSON)获取两个位置之间的距离

来自分类Dev

bash:清除两个位置之间的字符串

来自分类Dev

在文本文件中的行中搜索两个位置之间的图案,并打印整行

来自分类Dev

在两个位置之间随机生成一个SKSpriteNode

来自分类Dev

iOS中两个位置之间的估计时间

来自分类Dev

getView()中的位置在两个位置之后重复,并跳过最后两个位置

来自分类Dev

获取java android中两个位置之间的距离

来自分类Dev

谷歌地图xamarin android中的两个位置之间没有出现折线

Related 相关文章

  1. 1

    在iOS中的GMSMapView上的两个位置之间绘制路线

  2. 2

    在ggplot2中的两个小平面之间绘制线条

  3. 3

    在两个位置之间绘制单元格

  4. 4

    Swift-在字符串的两个位置之间查找子字符串

  5. 5

    如何获取Windows Phone 8.1中两个位置之间的距离

  6. 6

    用于计算树上两个位置之间距离的性能?

  7. 7

    如何在谷歌地图中的两个位置之间绘制路径

  8. 8

    Swift:使用Google Maps获取两个位置之间的旅行时间

  9. 9

    获取两个位置之间的路线点

  10. 10

    使用Google Map Android API V2在两个位置之间进行路由

  11. 11

    mysql中的ST_Distance_Sphere无法提供两个位置之间的准确距离

  12. 12

    R中地球上两个位置之间的距离

  13. 13

    检查两个位置之间的距离,以KM为单位

  14. 14

    获取两个位置之间的距离和时间的功能

  15. 15

    寻找两个位置之间的距离

  16. 16

    bing映射两个位置之间的直线

  17. 17

    在两个位置之间绘制单元格

  18. 18

    如何在iPhone应用程序中找到两个位置之间的方向?

  19. 19

    如何使用GMSMapView在两个位置之间找到最短路径并绘制锯齿形路径?

  20. 20

    Swift-在字符串的两个位置之间查找子字符串

  21. 21

    给定纬度和经度,计算两个位置之间的行驶/行驶距离(必应地图)

  22. 22

    使用Google Maps Api(JSON)获取两个位置之间的距离

  23. 23

    bash:清除两个位置之间的字符串

  24. 24

    在文本文件中的行中搜索两个位置之间的图案,并打印整行

  25. 25

    在两个位置之间随机生成一个SKSpriteNode

  26. 26

    iOS中两个位置之间的估计时间

  27. 27

    getView()中的位置在两个位置之后重复,并跳过最后两个位置

  28. 28

    获取java android中两个位置之间的距离

  29. 29

    谷歌地图xamarin android中的两个位置之间没有出现折线

热门标签

归档