2013-10-26 6 views
10

Ich möchte eine gebrochene X-Achse in meinem Grundstück bekommen. In der x-Achse füge ich gerne ein gebrochenes Achsensymbol ein <//> [beginnend von 2 und endete in Ende 8, was bedeutet, dass 2-8 in <//> Symbol versteckt werden], so dass die anderen Werte hervorgehoben werden können. In Matlab wird diese Aufgabe unter Verwendung von BreakXAxis ausgeführt. In R, plotrix Bibliothek hilft nur ein Break-Achse-Symbol, das ist alles.Break X Achse in R

x <- c(9.45, 8.78, 0.93, 0.47, 0.24, 0.12) 
y <- c(10.72, 10.56, 10.35, 10.10, 9.13, 6.72) 
z <- c(7.578, 7.456, 6.956, 6.712, 4.832, 3.345) 
plot(x, y, col='blue', pch=16, xlab= 'x', ylab='y, z') 
points(x, z, col='red', pch=17) 
library(plotrix) 
axis.break(1,2,style="slash") 

Antwort

11
xgap <- ifelse(x > 8, x-6, x) 
#Possibly you'd want to check if there are values between 2 and 8. 
plot(xgap, y, col='blue', pch=16, xlab= 'x', ylab='y, z', xaxt="n") 
points(xgap, z, col='red', pch=17) 
xat <- pretty(xgap) 
xat <- xat[xat!=2] 
xlab <- ifelse(xat>2, xat+6, xat) 
axis(1,at=xat, labels=xlab) 
library(plotrix) 
axis.break(1,2,style="slash") 

enter image description here

Tun Sie dies nicht tun. gap.plot bietet eine etwas bessere Alternative, aber ich würde wahrscheinlich Facetten verwenden, z. B. mit ggplot2.

14

Klingt wie Sie gap.plot

library(plotrix) 
par(bty="n") # deleting the box 
gap.plot(x,y, gap=c(2,7.5), gap.axis="x", pch=16, 
     col="blue", ylim=range(c(y,z)), 
     xtics=c(0:3,8:10), xticlab=c(0:3,8:10)) 

gap.plot(x,z, gap=c(2,7.5), gap.axis="x", pch=17, 
     col="red", ylim=range(c(y,z)), add=TRUE); axis(2) 

abline(v=seq(1.99,2.09,.001), col="white") # hiding vertical lines 
axis.break(1,2,style="slash")    # plotting slashes for breakpoints 

enter image description here

brauchen