R 中的网络图和美国地图

发布于 2024-09-27 23:39:08 字数 389 浏览 1 评论 0原文

我根据美国各州之间的流量数据创建了一个网络图。对于每个顶点,我都有该州的纬度/经度。

我希望重新创建一种显示边缘的网络图,只不过我将每个顶点的位置设置为它们的地理位置,并在后台有一个州边界地图。

我正在使用 igraph 来创建我的网络。 ggplot2 中有一些很酷的映射示例,所以我想知道这是否是一个选项。我相信我已经使用 Pajek 看到了类似的选项,但我希望留在 R 中。

ggplot2 中的地图

任何想法/见解将不胜感激。

  • 布罗克

I created a network graph from data on flows between US states. For each vertex, I have the lat/long of the state.

I am hoping to recreate a network kind of graph that shows the edges, except that I set the location of each vertex to be their geographic position and have a state boundary map in the background.

I am using to igraph to create my network. There have been some cool mapping examples in ggplot2, so I am wondering if that is an option. I believe I have seen similar options using Pajek, but I am hoping to stay within R.

maps in ggplot2

Any ideas/insight would be appreciated.

  • Brock

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烛影斜 2024-10-04 23:39:08

您有多个处理地图的包。最简单的是maps,它为您提供州地图。您可以使用坐标绘制顶点。

map("state")
points(longitute,latitude)

可以使用基本工具操作和添加这些图,请记住 x 轴是经度,y 轴是纬度。可以使用 segments() 函数绘制边。

在 ggplot2 中,只需使用 map_data() 函数即可为您提供地图的形状数据,并使用 geom_polygon() 将其以您想要的任何形式添加到图形中。想。同样,您可以使用适当的 ggplot2 函数 geom_point()geom_segment() 的坐标来添加顶点和边。您链接的代码向您展示了如何操作,或者查看一个例子。

接下来,您可以查看 maptools 包,它提供了更多功能,以及 mapproj,它允许对同一地图进行不同的投影。您也可以使用这些包来计算坐标系中的地理距离。

mapdata包含的数据库较多,基本覆盖了全世界。您可以很好地使用坐标。

You have multiple packages dealing with maps. The most easy is maps, which gives you the states map. You can plot the vertices over using the coordinates.

map("state")
points(longitute,latitude)

These plots can be manipulated and added to using the base tools, keeping in mind the x axis is the longitude and the y axis is the latitude. edges can be plotted using the segments() function.

In ggplot2 just use the map_data() function, which gives you the shape-data of the map, and the geom_polygon() to add it to the graph in whatever form you want. Again, you can add the vertices and edges using the coordinates with the appropriate ggplot2 function geom_point() and geom_segment(). The code you link at shows you how, or otherwise look at this for an example.

Next to that, you can take a look at the packages maptools, which offers more functionality and, mapproj, which allows for different projections of the same map. You can use these packages as well to calculate geographical distances in a coordinate system.

mapdata contains more databases, and covers basically the whole world. You can work with coordinates pretty nicely.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文