【问题标题】:Lattice panel.abline on multipanel plot多面板图上的格子 panel.abline
【发布时间】:2016-08-06 22:13:50
【问题描述】:

我正在尝试使用以下代码创建具有多个面板的 lattice xyplot。问题是它在所有面板上添加了所有中线(即 ablines 不按主题分组)。有没有办法对每个主题的中线进行子集化?

以下是使用 PKPDdatasets 包中的 Theoph 数据集的可重现示例。

# devtools::install_github("dpastoor/PKPDdatasets")
library(PKPDdatasets)
library(lattice)
library(latticeExtra)
library(dplyr)

Theoph_Data <- Theoph

Theoph_Data1 <- Theoph_Data %>% group_by(Subject) %>% mutate(Median= median(Time))

print(Theoph_Data1)

Theoph_PK <- xyplot(conc ~ Time| Subject, data=Theoph_Data1,
                   panel = function(x,y,...) {
                   panel.xyplot(x,y,...)
                   panel.abline(v=Theoph_Data1$Median)
                   })
Theoph_PK

【问题讨论】:

标签: r lattice


【解决方案1】:

虽然您的示例不是最好的,因为每个人的中位时间相同,但基本思想是这样的:

Theoph_Data <- Theoph
xyplot(conc ~ Time| Subject, data=Theoph_Data1,
    panel = function(x,y,subscripts,...) {
        panel.xyplot(x,y, subscripts=subscripts,...)
        panel.abline(v=median(Theoph_Data1$Time[subscripts]))
    }
)

您可以在面板函数中请求subscripts= 参数。这将为您提供每个面板中绘制的观察结果的索引。然后,您可以使用这些下标对原始数据进行子集化。在这里,我们在函数中计算中位数(以确保我们只尝试绘制具有单个值的单线)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多