【问题标题】:plot.ppp plotting characters and not displaying coordinatesplot.ppp 绘制字符而不显示坐标
【发布时间】:2021-03-03 22:11:34
【问题描述】:

我有两个 sf 对象,我想将它们并排绘制为 ppp。基于this 问题,情节首先运行良好,情节很好,但随后我点击“清除所有情节”以并排生成两个情节。之后,坐标不再显示在任一轴上,一个图显示字符,如下所示。我什至重新启动了 R,但结果仍然相同。下面是代码,示例数据可以从here下载。我不知道清除绘图窗口后出了什么问题。如何解决这个问题?

sf = st_read("~", "sf")
# Regrouping data
sf = sf::st_as_sf(sf, coords = c("Long", "Lat")) %>% 
  group_by(COOPID, STATION_NA) %>% 
  summarize(do_union=FALSE) 
# Counties 
sf_2 = st_read("~", "sf_2")
sf_2 = sf::st_as_sf(sf_2, coords = c("Long", "Lat")) %>% 
  group_by(COOPID, Manner_of_) %>% 
  summarize(do_union=FALSE) 
sf_flat = st_transform(sf, crs = 6345)
sf_2_flat = st_transform(sf_2, crs = 6345)
sf_ppp = maptools::as.ppp.SpatialPointsDataFrame(as_Spatial(sf_flat))
sf_2_ppp = maptools::as.ppp.SpatialPointsDataFrame(as_Spatial(sf_2_flat))
marks(sf_ppp) = factor(marks(Idaho_Stations__owin_c)$STATION_NA)
marks(sf_2_ppp) = factor(marks(Idaho_Stations__owin_c)$Manner_of_)
#Plot
par(mfrow=c(1,2))
plot(sf_ppp, main = "sf ppp")
plot(sf_2_ppp, main = "sf_2 ppp")

我也可以收到 sf_ppp 的警告:

Warning message:
In default.charmap(ntypes, chars) :
  Too many types to display every type as a different character

【问题讨论】:

    标签: r spatstat


    【解决方案1】:

    每个点模式数据集sf_pppsf_2_ppp 都有一个标记向量,该向量是factor,将点分类为不同的组或类型。在行话中,这被称为多类型点模式。

    警告消息指出,这些点模式之一的类型太多(即因子的不同可能水平太多),无法使用从可用的绘图字符中选择的不同绘图字符显示(在基础绘图中) R中的系统)。

    看看你制作的情节,右边的情节看起来很正常。它显示了具有 6 种不同类型的多类型点模式,并在旁边列出,以及用于表示它们的绘图字符。例如,三角形表示正面碰撞。

    左边的情节是当类型太多时发生的情况。该代码放弃了尝试将类型(级别)映射到绘图字符pch,而是使用字母表(小写和大写),如果超过 52 个级别,则循环使用字母表。它还截断可能类型的列表,以便它可以放在绘图的一侧。在这种情况下,代码无法猜测您想要做什么,但您可以通过指定参数chars 将级别映射到绘图字符,或者将一些因子级别与mergeLevels 合并来负责。

    请考虑花一些时间阅读spatstat book 的第 3 章和第 4 章,其中解释了如何处理这些数据。第 3 章免费提供。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2019-07-07
    • 2014-03-09
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多