2016-12-19 4 views
2

ich diesen Testplot habender Handlung

data <- data.table(c(1:20)) 
data[, key:=.I] 
point <- c(5, 5) 
ggplot(data, aes(x = V1, y = key)) + geom_line() + geom_point(aes(x = 5, y = 5)) 

die

enter image description here

erzeugt würde Ich mag, nach den Punkt auf dem Diagramm zu mache die Linie mit ggplot gestrichelt. Ist es möglich ?

+1

Vielleicht 'ggplot (Daten, aes (x = V1, y = Schlüssel, Linientyp = as.factor (Schlüssel> 5))) + ...'? – zx8754

Antwort

1

auf den Kommentar von zx8754 Hinzufügen, hier ist eine Probenlösung, die von den Untereinstellungen der Daten:

library(ggplot2) 
library(data.table) 
data <- data.table(c(1:20)) 
data[, key:=.I] 
point <- c(5, 5) 
data[, lineType1 := ifelse(key >= 5, "2", "0")] 
g1 <- ggplot(data, aes(x = V1, y = key)) + geom_line(data=data[key <= 5, ], linetype = "solid") + 
    geom_line(data=data[key >= 5, ], linetype = "dotted") + geom_point(aes(x = 5, y = 5)) 
g1 

Unter Einstellung der Daten ist die beste Art und Weise angepasst Liniendiagramm zu erhalten. Interessant ist die Bedingung der Untersetzung. Ich habe data=data[key <= 5, ] für 1. geom_line() und data=data[key >= 5, ] für 2. geom_line() verwendet. Dies bedeutet, dass ich key=5 in beiden geom_line() nehme. Die Bedingung der Untersetzung wird so durchgeführt, dass es keine Unterbrechungen zwischen den beiden Zeilen gibt.

Ich hoffe, die Erklärung ist klar.

Verwandte Themen