R mapBubbles忽略了我的极限

R mapBubbles忽略了我的极限,r,dictionary,plot,rworldmap,R,Dictionary,Plot,Rworldmap,我使用R中rworldmap包中的mapBubbles绘制欧洲地图。到目前为止还不错,因为我可以在地图上绘制气泡,给它们贴标签,等等。但是,mapBubbles似乎忽略了我的xlim和ylim值:它不允许我缩放到某个点以外。这有什么办法吗 mapBubbles(dF = df, nameX = "lon", nameY = "lat", nameZSize = "citySizes", nameZColour = c("black"), oceanCol = bcols[10], landCol

我使用R中rworldmap包中的mapBubbles绘制欧洲地图。到目前为止还不错,因为我可以在地图上绘制气泡,给它们贴标签,等等。但是,mapBubbles似乎忽略了我的xlim和ylim值:它不允许我缩放到某个点以外。这有什么办法吗

mapBubbles(dF = df, nameX = "lon", nameY = "lat", nameZSize = "citySizes", nameZColour = c("black"), oceanCol = bcols[10], landCol = bcols[5], borderCol = "darkGrey", symbolSize=0.4, xlim = c(-20,40), ylim = c(30,72), addLegend = FALSE, lwdSymbols=2, fill = FALSE)

我希望我的欧洲地图有一些限制:
xlim=c(-20,40),ylim=c(30,72)
,但它似乎给了我一些类似于
xlim=c(-20,45),ylim=c(20,80)
(注意y值)。

我认为问题有两个方面:

  • 当在R图中设置轴限制时,在每一侧都会提供一个缓冲区。这可能是为了确保恰好位于某个极限的任何点不会被切成两半(这可能看起来很奇怪,取决于它们有多大)。要解决y轴的问题,可以将限制设置为(31.5,70.5)。请参见下面的编辑

  • mapBubbles生成的绘图似乎设置了维度。因此,x轴和y轴的放大百分比必须相同。为了尽可能地放大x轴,最终会在y轴上放大太远

  • 解决方案:如果你真的想去掉多余的部分,你可以在绘图的边缘添加一些白色的矩形。在将y限制更改为上面问题1中所示的限制后(或至少在我的计算机上如此),这将适用于您的示例:


    编辑:
    我找到了一个更好的解决方案,用于R添加到轴限制的额外缓冲区。您可以简单地更改图形参数,而不是将y轴的坐标从c(30,72)更改为c(31.5,70.5)。使用
    par(xaxs=“i”,yaxs=“i”)
    将删除该缓冲区(对于任何想知道的人来说,这显然是4%)。矩形的代码不需要更改。

    在我有限的实验中,似乎当它们的范围相等时,极限效果最好。你找到解决方法了吗?(请不要说不)@BhargavRao还没有!
    rect(-35, 29, -20, 73, col = "white", border = NA)
    rect(40, 29, 55, 73, col = "white", border = NA)