【问题标题】:Standardising Kernel Density Plot's Width & Legend Scale标准化核密度图的宽度和图例比例
【发布时间】:2018-11-25 06:41:00
【问题描述】:

我有以下 4 个内核密度图,但希望图例比例以及图的宽度/高度在所有 4 个中都相同以进行比较。

我的代码是:

kde_pipit_2014_bw <- density(Pipit_ppp_2016, sigma=4.18, edge=TRUE, kernel="gaussian") 
kde_pipit_2015_bw <- density(Pipit_ppp_2016, sigma=4.18, edge=TRUE, kernel="gaussian") 
kde_pipit_2016_bw <- density(Pipit_ppp_2016, sigma=4.18, edge=TRUE, kernel="gaussian") 
kde_pipit_2016_bw <- density(Pipit_ppp_2016, sigma=4.18, edge=TRUE, kernel="gaussian")

par(mfrow=c(2,2),cex=0.7, mai=c(0.1,0.1,0.2,0.2))
plot(kde_pipit_2014_bw) 
plot(kde_pipit_2015_bw) 
plot(kde_pipit_2016_bw) 
plot(kde_pipit_2017_bw)

下面是地块的图像。有什么办法可以将它缩放到相同的大小进行比较?

【问题讨论】:

  • 在问题中添加图片进入,最好不要链接到其他网站(请参阅我的编辑)
  • 我可能会使用ggplot2(也因为我不太了解baseR图形)。并定义我的轴限制.. 这么说-肯定也可以在 baseR 中定义轴限制。
  • 但是为什么你的代码会给出不同的结果?我的印象是您可能在那里遇到复制粘贴错误?因为您总是在绘图调用中使用相同的数据。如果这些是不同的数据集 - 可以合并它们,将它们放入长格式,然后使用 facetting
  • @Tjebo,新用户无法嵌入图片。他们只是被上传到 imgur。您可以编辑嵌入。

标签: r plot kernel-density


【解决方案1】:

您没有提供示例数据,所以我使用的是mtcars。 这是的一种方式 正如评论中提到的那样,诀窍是将您每年可能存在的几个数据帧合并到一个数据帧中,理想情况下是一个长格式,其中包含一个包含“年份”信息的列。

library(ggplot2)

ggplot(mtcars, aes(x = mpg, y = wt)) + 

  stat_density2d(aes(fill = ..density..), geom = "raster", contour = FALSE) +
  scale_fill_gradient(low="green",high="red")+
  facet_grid(~cyl)  ## you can replace this with your year

#the colors are just examples, I did not try to reproduce exactly your color scale 

【讨论】:

    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2020-05-19
    • 2020-07-15
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多