आर

2013-10-26 5 views
10

में ब्रेक एक्स एक्सिस मैं अपनी साजिश में एक टूटी एक्स-अक्ष प्राप्त करना चाहता हूं। एक्स-अक्ष में मैं टूटा-अक्ष प्रतीक <//> डालना पसंद करता हूं [2 से शुरू होता है और अंत 8 में समाप्त होता है जिसका अर्थ है कि 2-8 प्रतीक में छिपा होगा] इसलिए अन्य मूल्यों पर जोर दिया जा सकता है। Matlab में, यह कार्य BreakXAxis का उपयोग करके किया जाता है। आर में, plotrix लाइब्रेरी केवल ब्रेक-अक्ष प्रतीक को प्लगइन करने में मदद करता है, बस इतना ही।आर

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") 

उत्तर

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

ऐसा मत करो। gap.plot थोड़ा बेहतर विकल्प प्रदान करता है, लेकिन मैं शायद ggplot2 के साथ पहलुओं का उपयोग करता हूं।

14

आप की तरह की जरूरत है लगता है 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