我使用带有facet的ggplot2
包来显示一些数据。数据可以是,例如,在不同大陆(或城市,国家等)上的一些值的分布。以下是一些玩具数据和标准解决方案,用于制作具有facet_grid()
功能的主要情节。
library(ggplot2) # key library
library(reshape2) # to convert to long format
databas<-read.csv(data=
"continent,apples,bananas
North America,30,20
South America,15,34.5
Europe,15,19
Africa,5,35")
databaslong<-melt(databas) # default conversion, will make first col.as id
# plotting as colored bars
ggplot(databaslong,aes(x=variable,y=value,fill=variable))+geom_col()+facet_grid(.~continent)
以下是可预测的产生:
但是现在我想更多地控制方面的位置。特别是,将世界地图上的每个放置在各大洲的各个位置上似乎很自然,这是tmap
或类似包装的典型行为。例如,使用本机ggplot工具:
mapWorld <- borders("world", colour="gray50", fill="gray50")
ggplot() + mapWorld
并得到这样(在inkscape中手动组合这两个层):
是否有可能以可编程的方式实现ggplot和映射包的这种组合?