Überlagerte XYPLOT-Felder mit gruppierten Regressionslinien

Ich möchte mehrere Gruppen in einem einzigen Feld in einem Gitter überlagern und unabhängige Regressionslinien verwenden.

Es ist ziemlich einfach, mehrere Panels mit jeweils einer Regressionslinie unter Verwendung eines Konditionierungsfaktors zu erhalten:

xyplot(
  Petal.Width  ~ Petal.Length | Species,
  data = iris,
  panel = function(x, y, ...) {
    panel.xyplot(x, y, ...)
    panel.abline(lm(y~x), col='#0080ff')
  },
  grid = TRUE
)

Es ist auch ziemlich einfach, eine einzelne Regression für alle Punkte in einem überlagerten Xyplot zu drucken:

xyplot(
  Petal.Width ~ Petal.Length,
  data = iris,
  groups = Species,
  panel = function(x, y, ...) {
    panel.xyplot(x, y, ...)
    panel.abline(lm(y~x))
  },
  grid = TRUE,
  auto.key = list(title='Species', space='right')
)

Aber das brauche ich nicht. Ich werde eine Antwort darauf eingeben, aber es scheint chaotisch. Vielleicht ist das nur die Natur des Tieres.

Ich suche etwas, das leichter zu verstehen ist. Gitter ist bevorzugt, es kann jedoch auch eine gute ggplot-Lösung akzeptiert werden. Wenn es nicht klar ist, erstelle ich Diagramme für den Verbrauch durch Excel-Benutzer.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage