这里我的数据集附在.csv文件中。有些人可以通过在R中使用ggplot2来帮助我制作疾病图。
由于
Towns Observed Expected Latitude Longitude
Jarawala Town 183 34.584 31.33429 73.419487
Sumindri Town 59 5.6927 31.0690531 72.9361303
Tandiawala Town 28 2.8326 31.0316667 73.1316667
Jhumra Town 23 1.0923 31.5666667 73.1833333
Madina Town 127 21.95 31.4178652 73.120208
Iqbal Town 40 6.9147 31.4932177 73.1051778
Jinnah Town 43 16.89 31.4144303 73.0768364
Layyalpur Town 97 38.121 31.4401011 73.0680131
答案 0 :(得分:7)
虽然我普遍认为SO“不是免费的代码编写服务”,但这个问题非常简单,并且说明了在R中实现相当复杂的可视化是多么容易。我也敏锐地意识到它是多么难以获得从R开始。所以我建议你使用作为起点,研究代码,阅读有关所用各种功能的文档,并自己扩展 。
library(rgdal) # for readOGR(...)
library(RColorBrewer) # for brewer.pal(...)
library(ggplot2)
setwd("< directory with all your files >")
pak <- readOGR(dsn=".",layer="PAK_adm3") # map of Pakistan
map <- pak[pak$NAME_3=="Faisalabad",] # extract Faisalabad region
centroids <- data.frame(coordinates(map)) # label(s) for the polygons
colnames(centroids) <- c("long","lat")
centroids$name <- map@data$NAME_3
palette <- brewer.pal(9,"YlOrRd") # Yellow-Orange-Red color palette
ggplot(map)+
geom_path(aes(x=long,y=lat,group=group))+
geom_text(data=centroids, aes(x=long,y=lat, label=name))+
geom_point(data=data,aes(x=Longitude,y=Latitude,size=Observed,color=Observed))+
scale_color_gradient(low=palette[5],high=palette[9])+
scale_size(guide="none")+
theme_bw()+coord_fixed()
<强>解释强>
据我所知,您的所有数据均来自巴基斯坦的费萨拉巴德地区。首先,我们需要一张巴基斯坦地图。这可以从许多来源获得,但我更喜欢优秀的Global Administrative Areas网站,您可以在其中下载巴基斯坦shapefile here。当然,这些都是zip存档,因此您必须将文件解压缩到一个目录中(在代码中标注为“包含所有文件的目录”)。从那里工作流程是:
1. Read shapefile: pak <- readOGR(...)
2. Extract the appropriate region: map <- pak[...]
3. Extract region name and centroid (for the label)
4. Generate color palette: palette <- brewer.pal(...)
5. Render the map, with points overlaid.
编辑我注意到R中存在与GADM的直接接口,这避免了手动下载和提取shapefile。这使用了包raster
中的getData(...)
函数。
# setwd("< directory with all your files >")
# pak <- readOGR(dsn=".",layer="PAK_adm3") # map of Pakistan
library(raster)
pak <- getData("GADM",country="PAK",level=3) # map of Pakistan, admin level 3.