Sök…


parametrar

Parameter detaljer
x x-axelvariabel. Kan leverera antingen data$variablex eller data[,x]
y y-axelvariabel. Kan leverera antingen data$variabley eller data[,y]
main Plottets huvudtitel
sub Valfritt undertexter av plot
xlab Etikett för x-axel
ylab Etikett för y-axeln
pch Heltal eller tecken som indikerar plottningssymbol
col Heltal eller sträng som indikerar färg
type Typ av tomt. "p" för punkter, "l" för rader, "b" för båda, "c" för linjerna enbart av "b" , "o" för båda "överplottade", "h" för "histogram" -liknande ( eller 'högdensitet') vertikala linjer, "s" för trappsteg, "S" för andra steg, "n" för ingen plottning

Anmärkningar

Objekten som listas i avsnittet "Parametrar" är en liten bråkdel av möjliga parametrar som kan modifieras eller ställas in med par . Se par för en mer fullständig lista. Dessutom kommer alla grafiska enheter, inklusive de systemspecifika interaktiva grafiska enheterna, att ha en uppsättning parametrar som kan anpassa utgången.

Grundläggande tomt

En grundläggande plot skapas genom att ringa plot() . Här använder vi den inbyggda cars dataram som innehåller bilarnas hastighet och avstånd som tagits för att stoppa på 1920-talet. (Om du vill veta mer om datasättet använder du hjälp (bilar)).

plot(x = cars$speed, y = cars$dist, pch = 1, col = 1, 
     main = "Distance vs Speed of Cars", 
     xlab = "Speed", ylab = "Distance")

ange bildbeskrivning här

Vi kan använda många andra variationer i koden för att få samma resultat. Vi kan också ändra parametrarna för att få olika resultat.

with(cars, plot(dist~speed, pch = 2, col = 3, 
     main = "Distance to stop vs Speed of Cars", 
     xlab = "Speed", ylab = "Distance"))

ange bildbeskrivning här

Ytterligare funktioner kan läggas till i denna plot genom att ringa points() , text() , mtext() , lines() , grid() , etc.

plot(dist~speed, pch = "*", col = "magenta", data=cars,
     main = "Distance to stop vs Speed of Cars", 
     xlab = "Speed", ylab = "Distance")
mtext("In the 1920s.")
grid(,col="lightblue")

ange bildbeskrivning här

Matplot

matplot är användbart för att snabbt plotta flera uppsättningar observationer från samma objekt, särskilt från en matris, på samma graf.

Här är ett exempel på en matris som innehåller fyra uppsättningar av slumpmässiga drag, var och en med ett annat medelvärde.

xmat <- cbind(rnorm(100, -3), rnorm(100, -1), rnorm(100, 1), rnorm(100, 3))
head(xmat)
#          [,1]        [,2]       [,3]     [,4]
# [1,] -3.072793 -2.53111494  0.6168063 3.780465
# [2,] -3.702545 -1.42789347 -0.2197196 2.478416
# [3,] -2.890698 -1.88476126  1.9586467 5.268474
# [4,] -3.431133 -2.02626870  1.1153643 3.170689
# [5,] -4.532925  0.02164187  0.9783948 3.162121
# [6,] -2.169391 -1.42699116  0.3214854 4.480305

Ett sätt att plotta alla dessa observationer på samma graf är att göra ett plot följt av ytterligare tre points eller lines .

plot(xmat[,1], type = 'l')
lines(xmat[,2], col = 'red')
lines(xmat[,3], col = 'green')
lines(xmat[,4], col = 'blue')

Figur med hjälp av plot och linjer

Detta är emellertid både tråkigt och orsakar problem eftersom bland annat axelgränserna är fixerade med plot att de bara passar den första kolumnen.

Mycket bekvämare i denna situation är att använda matplot funktionen, som bara kräver ett samtal och automatiskt tar hand om axelgränser och ändrar estetiken för varje kolumn för att göra dem urskiljbara.

matplot(xmat, type = 'l')

Figur med matplot

Observera att matplot standard varierar både färg ( col ) och linetyp ( lty ) eftersom detta ökar antalet möjliga kombinationer innan de upprepas. Emellertid kan alla (eller båda) av dessa estetiker fixeras till ett enda värde ...

matplot(xmat, type = 'l', col = 'black')

Figur med matplot med alla svarta linjer

... eller en anpassad vektor (som kommer att återvinnas till antalet kolumner, enligt standardregler för återvinning av R-vektor).

matplot(xmat, type = 'l', col = c('red', 'green', 'blue', 'orange'))

Figur med matplot med specialfärgade linjer

Standardgrafiska parametrar, inklusive main , xlab , xmin , fungerar exakt på samma sätt som för plot . För mer om dessa, se ?par .

Liksom plot , om endast ett objekt matplot antar matplot det är y variabeln och använder index för x . Emellertid kan x och y specificeras uttryckligen.

matplot(x = seq(0, 10, length.out = 100), y = xmat, type='l')

Ställa in ett värde för x-axeln

I själva verket kan både x och y vara matriser.

xes <- cbind(seq(0, 10, length.out = 100),
             seq(2.5, 12.5, length.out = 100),
             seq(5, 15, length.out = 100),
             seq(7.5, 17.5, length.out = 100))
matplot(x = xes, y = xmat, type = 'l')

Matrisingång för x och y

histogram

Histogram möjliggör en pseudo-plot av den underliggande distributionen av data.

hist(ldeaths)

Histogram för ldeaths med standardparametrar

hist(ldeaths, breaks = 20, freq = F, col = 3)

Historgram med densitet, olika pauser och färgade staplar.

Kombinera tomter

Det är ofta användbart att kombinera flera plottyper i en graf (till exempel en Barplot bredvid en Scatterplot.) R gör detta enkelt med hjälp av funktionerna par() och layout() .

par()

par använder argumenten mfrow eller mfcol att skapa en matris av nrows och ncols c(nrows, ncols) som kommer att fungera som ett rutnät för dina tomter. Följande exempel visar hur man kombinerar fyra tomter i en graf:

par(mfrow=c(2,2))
plot(cars, main="Speed vs. Distance")
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")

Fyra tomter kombinerade i en tomt

layout()

layout() är mer flexibel och låter dig ange platsen och omfattningen av varje plot inom den slutliga kombinerade grafen. Denna funktion förväntar sig ett matrisobjekt som ingång:

layout(matrix(c(1,1,2,3), 2,2, byrow=T))
hist(cars$speed, main="Histogram of Speed")
boxplot(cars$dist, main="Boxplot of Distance")
boxplot(cars$speed, main="Boxplot of Speed")

Tre tomter kombinerade i en tomt med layout ().

Densitet plot

En mycket användbar och logisk uppföljning av histogram skulle vara att plotta den jämnade densitetsfunktionen för en slumpmässig variabel. En grundläggande tomt producerad av kommandot

plot(density(rnorm(100)),main="Normal density",xlab="x")

skulle se ut

exempel på rnormtäthet

Du kan lägga till ett histogram och en densitetskurva med

x=rnorm(100)
hist(x,prob=TRUE,main="Normal density + histogram")
lines(density(x),lty="dotted",col="red")

vilket ger

Övertäckning rnorm

Empirisk kumulativ fördelningsfunktion

En mycket användbar och logisk uppföljning av histogram och densitetsplott skulle vara den empiriska kumulativa fördelningsfunktionen. Vi kan använda funktionen ecdf() för detta ändamål. En grundläggande tomt producerad av kommandot

plot(ecdf(rnorm(100)),main="Cumulative distribution",xlab="x")

skulle se ut ange bildbeskrivning här

Komma igång med R_Plots

  • Scatterplot

Du har två vektorer och du vill plotta dem.

x_values <- rnorm(n = 20 , mean = 5 , sd = 8) #20 values generated from Normal(5,8)
y_values <- rbeta(n = 20 , shape1 = 500 , shape2 = 10) #20 values generated from Beta(500,10)

Om du vill skapa ett diagram som har y_values i vertikal axel och x_values i horisontell axel kan du använda följande kommandon:

plot(x = x_values, y = y_values, type = "p") #standard scatter-plot
plot(x = x_values, y = y_values, type = "l") # plot with lines
plot(x = x_values, y = y_values, type = "n") # empty plot

Du kan skriva ?plot() i konsolen för att läsa om fler alternativ.

  • boxplot

Du har några variabler och du vill granska deras distributioner

#boxplot is an easy way to see if we have some outliers in the data.
   
z<- rbeta(20 , 500 , 10) #generating values from beta distribution
z[c(19 , 20)] <- c(0.97 , 1.05) # replace the two last values with outliers      
boxplot(z) # the two points are the outliers of variable z.
  • histogram

Enkelt sätt att rita histogram

hist(x = x_values) # Histogram for x vector
hist(x = x_values, breaks = 3) #use breaks to set the numbers of bars you want
  • Cirkeldiagram

Om du vill visualisera frekvenserna för en variabel, rita bara cirkeln

Först måste vi generera data med frekvenser, till exempel:

P <- c(rep('A' , 3) , rep('B' , 10) , rep('C' , 7) )
t <- table(P) # this is a frequency matrix of variable P
pie(t) # And this is a visual version of the matrix above


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow