相关疑难解决方法(0)

在ggplot中绘制地图上的饼图

这可能是一个愿望清单的事情,不确定(即可能需要为此创建geom_pie).今天我看到了一张地图(LINK),上面有饼图. 在此输入图像描述

我不想讨论饼图的优点,这更多的是我可以在ggplot中做这个练习吗?

我提供了一个下面的数据集(从我的下拉框中加载),其中包含制作纽约州地图的地图数据和一些关于各县种族百分比的纯粹数据.我将这种种族构成作为与主数据集的合并以及作为单独的数据集称为密钥.我也认为布莱恩古德里奇在关于居中县名的另一篇文章(HERE)中对我的回应将有助于这个概念.

我们如何用ggplot2制作上面的地图?

数据集和没有饼图的地图:

load(url("http://dl.dropbox.com/u/61803503/nycounty.RData"))
head(ny); head(key)  #view the data set from my drop box
library(ggplot2)
ggplot(ny, aes(long, lat, group=group)) +  geom_polygon(colour='black', fill=NA)

#  Now how can we plot a pie chart of race on each county 
#  (sizing of the pie would also be controllable via a size 
#  parameter like other `geom_` functions).
Run Code Online (Sandbox Code Playgroud)

提前感谢您的想法.

编辑:我刚看到junkcharts的另一个案例,它尖叫着这种类型的能力: 在此输入图像描述

r ggplot2

35
推荐指数
3
解决办法
2万
查看次数

在绘图中嵌入微型图

有没有人知道将图形嵌入其他图形以产生类似下面的模型的一般方法?

我知道在格子中你可以print(..., more=TRUE, positions=...)按照这个问题中的解释来做到这一点,我猜ggplot也有它的解决方案(但我对ggplot不是很好).问题是我想要将使用标准图形包的生存包中的常规绘图嵌入到格子图中.

嵌入式绘图的模型

提前致谢!

plot r lattice

21
推荐指数
2
解决办法
8262
查看次数

如何在ggplot2地图上绘制条形图

我也发现了类似的答案像这样的问题,但大部分都是使用包rworldmap,ggmap,ggsubplotgeom_subplot2d.例如,在此处此处查看.

我想知道如何将其他ggplot对象(如条形图)绘制到地图上,这是从shapefile创建的.我正在使用的那个可以在这里下载.

编辑

正如@beetroot正确指出的那样,可以在上面发布的链接下下载的新文件发生了显着变化.因此,调整shapefile等的名称.

library(rgdal)
library(ggplot2)
library(rgeos)
library(maptools)

map.det<- readOGR(dsn="<path to your directory>/swissBOUNDARIES3D100216/swissBOUNDARIES3D/V200/SHAPEFILE_LV03", layer="VECTOR200_KANTONSGEBIET")
map.kt <- map.det[map.det@data$KANTONSNUM=="CH01000000"|map.det@data$KANTONSNUM=="CH19000000",]


#get centroids
map.test.centroids <- gCentroid(map.kt, byid=T)
map.test.centroids <- as.data.frame(map.test.centroids)
map.test.centroids$KANTONSNR <- row.names(map.test.centroids)

#create df for ggplot
kt_geom <- fortify(map.kt, region="KANTONSNUM")

#Plot map
map.test <- ggplot(NULL)+
        geom_polygon(data=kt_geom, aes(long, lat, group=group), fill="white")+
        coord_fixed()+
        geom_path(data=kt_geom, color="gray48", mapping=aes(long, lat, group=group), size=0.2)+
        geom_point(data=map.test.centroids, aes(x=x, y=y), size=9, alpha=6/10)

mapp
Run Code Online (Sandbox Code Playgroud)

这导致了这样的地图.到现在为止还挺好. 在此输入图像描述

但是,我在组合两个地图时遇到了困难map.test,例如地图,例如,这个:

geo_data <- …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 gridextra r-grid

11
推荐指数
1
解决办法
4035
查看次数

使用ggmap世界地图

我正在尝试使用ggmappackage/get_map功能(请参阅下面的代码)结合使用获取整个世界的简单栅格地图ggplot2.缩放级别仅朝向"3",并且不允许进一步缩小

获得一张世界地图似乎是不可能的(如说明中所述ggmap:( "maps of the whole world currently not supported").也许由于缺乏理解为什么这是不可能/不支持的,有没有一种解决方案可以获得世界地图视图?

关于问题的编辑/更新:我试图按照建议使用世界地图 - 但由于某种原因我不明白为什么它不允许我在图中绘制点(这是最初的目标,并且确实有效in ggmap) - 觉得我做了一些愚蠢的事情/犯了一些基本的错误.我收到错误消息"Error in eval(expr, envir, enclos) : object 'group' not found"

编辑 - 不幸的是我使用OpenStreetMap收到错误消息(java错误.正在修复此问题 - 但非OpenStreetMap解决方案会很棒......)

总结一下 - 这种ggmap方法有效geom_point,但我不能得到一个完整的世界地图.这种worldmap方法应该有效,但由于某种原因无法获得积分.....

以下新代码:

ggmap 做法:

library(ggmap)
library(ggplot2)

reclat=c(50,20,30,40)
reclong=c(30,40,30,50)         
points=as.data.frame(cbind(reclat,reclong))

al1 = get_map(location = 'Europe', zoom = 3, color="bw",maptype = "satellite")
map = ggmap(al1)
map 

#this works
map+geom_point(data=points, aes(x=reclong, y=reclat, colour="red"))
Run Code Online (Sandbox Code Playgroud)

worldmap 做法:

world …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggmap

6
推荐指数
1
解决办法
9009
查看次数

在地图上的条形图

我试图在地图上绘制垂直条形图.我在线浏览了一些例子,但不知怎的.

我的数据目前采用以下格式:

University| Count | Category | lat | long
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试执行的代码:

library(ggplot2)
library(ggmap)
library(ggsubplot)

df1 <- data.frame(
  University = c(rep("University1", 4), rep("University2", 4), rep("University3", 4), 
    rep("University4", 4)),
  Count = sample(1:10, 16, replace = T),
  Category = rep(c("A", "B", "C", "D")),
  lat = c(rep(10.902469, 4), rep(17.921959, 4), rep(18.606910, 4), rep(13.202366, 4)),
  long = c(rep(76.90020, 4), rep(83.42510, 4), rep(73.87501, 4), rep(77.62340, 4))
)

india <- get_map("India", zoom = 5)
p <- ggmap(india)
p + geom_subplot(data = df1, mapping=aes(x = long, y = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggmap

5
推荐指数
1
解决办法
4980
查看次数

在R中的国家地图上绘制条形图

以下是来自state.x77数据集的美国州示例数据:

mydf = structure(list(usa_state = structure(1:5, .Label = c("Alabama", 
"Alaska", "Arizona", "Arkansas", "California"), class = "factor"), 
    Life.Exp = c(69.05, 69.31, 70.55, 70.66, 71.71), HS.Grad = c(41.3, 
    66.7, 58.1, 39.9, 62.6)), .Names = c("usa_state", "Life.Exp", 
"HS.Grad"), class = "data.frame", row.names = c(NA, -5L))

> mydf
   usa_state Life.Exp HS.Grad
1    Alabama    69.05    41.3
2     Alaska    69.31    66.7
3    Arizona    70.55    58.1
4   Arkansas    70.66    39.9
5 California    71.71    62.6
> 
Run Code Online (Sandbox Code Playgroud)

我想在美国州地图上绘制它.我可以使用以下代码绘制地图:

all_states <- map_data("state")
ggplot() + geom_polygon( data=all_states, aes(x=long, y=lat, group = …
Run Code Online (Sandbox Code Playgroud)

plot dictionary r

5
推荐指数
1
解决办法
593
查看次数

有什么方法可以在地图上绘制多个条形图?

我试图在地图上绘制多个条形图,我只是在寻找一个开始的地方。我已经看过几个问题(如下所示)。

地图上的条形图

使用ggplot2在地图上绘制条形图?

如何将条形图绘制到 ggplot2 地图上

然而,所有这些似乎都过时了。

以下是我试图绘制的数据。我希望在一张地图上绘制 4 个地块,每个地理位置都有一个。我希望每个地块都是每个位置的每个目的的计数。

                 geoloc                     purpose count
1      Eastern Atlantic                    Behavior     4
2      Eastern Atlantic           Impacts/Fisheries     7
3      Eastern Atlantic                   Knowledge     8
4      Eastern Atlantic Migration/Habitat Selection     2
5      Eastern Atlantic                    Movement    10
7       Eastern Pacific                    Behavior     1
8       Eastern Pacific           Impacts/Fisheries     1
9       Eastern Pacific                   Knowledge     3
10      Eastern Pacific Migration/Habitat Selection     2
11      Eastern Pacific                    Movement     4
13 Southwestern Pacific                    Behavior     3
14 Southwestern Pacific                    Movement     7
15     Western Atlantic                    Behavior     8 …
Run Code Online (Sandbox Code Playgroud)

mapping r ggplot2 ggmap

5
推荐指数
1
解决办法
956
查看次数

在 R ggplot2 中将条形图绘制到地图上

我想将条形图添加到 ggplot2 中的地图中。存在类似的问题(这个这个),但他们的答案涉及 ggsubplot,它已被弃用。 geom_scatterpie()提供了一种使用饼图执行此操作的方法(示例 1,也请参阅示例 2),但饼图在视觉上不如条形图直观。同样,我们可以使用此处的geom_sf(size=)说明将气泡大小绘制到地图上。那么有没有办法用 bar 来做到这一点呢?

每个位置制作一根酒吧的可重复示例:

# devtools::install_github("hrbrmstr/albersusa")
library(albersusa)
library(sf)
library(ggplot2)

# make a map
statesus <- fortify(usa_sf("laea"))
p <- ggplot() +
     geom_sf(data=statesus, size=0.4)

# set up the data
lat <- c(-68.24, -109.88, -80.88, -113.85)
lon <- c(44.35, 38.24, 25.37, 48.75)
park <- c("Acadia", "Canyonlands", "Everglades", "Glacier")
proportion <- c(0.10, 0.80, 0.05, 0.45) # bar heights
parkdat <- data.frame(lat=lat, lon=lon, park=park, proportion=proportion)
parkdatsf <- …
Run Code Online (Sandbox Code Playgroud)

dictionary r ggplot2 geom-bar r-sf

3
推荐指数
1
解决办法
1044
查看次数

标签 统计

r ×8

ggplot2 ×6

ggmap ×3

dictionary ×2

plot ×2

geom-bar ×1

gridextra ×1

lattice ×1

mapping ×1

r-grid ×1

r-sf ×1