plot.cimg | R Documentation |
If you want to control precisely how numerical values are turned into colours for plotting, you need to specify a colour scale using the colourscale argument (see examples). Otherwise the default is "gray" for grayscale images, "rgb" for colour. These expect values in [0..1], so the default is to rescale the data to [0..1]. If you wish to over-ride that behaviour, set rescale=FALSE. See examples for an explanation. If the image is one dimensional (i.e., a simple row or column image), then pixel values will be plotted as a line.
## S3 method for class 'cimg' plot( x, frame, xlim = c(1, width(x)), ylim = c(height(x), 1), xlab = "x", ylab = "y", rescale = TRUE, colourscale = NULL, colorscale = NULL, interpolate = TRUE, axes = TRUE, main = "", xaxs = "i", yaxs = "i", asp = 1, col.na = rgb(0, 0, 0, 0), ... )
x |
the image |
frame |
which frame to display, if the image has depth > 1 |
xlim |
x plot limits (default: 1 to width) |
ylim |
y plot limits (default: 1 to height) |
xlab |
x axis label |
ylab |
y axis label |
rescale |
rescale pixel values so that their range is [0,1] |
colourscale, colorscale |
an optional colour scale (default is gray or rgb) |
interpolate |
should the image be plotted with antialiasing (default TRUE) |
axes |
Whether to draw axes (default TRUE) |
main |
Main title |
xaxs |
The style of axis interval calculation to be used for the x-axis. See ?par |
yaxs |
The style of axis interval calculation to be used for the y-axis. See ?par |
asp |
aspect ratio. The default value (1) means that the aspect ratio of the image will be kept regardless of the dimensions of the plot. A numeric value other than one changes the aspect ratio, but it will be kept the same regardless of dimensions. Setting asp="varying" means the aspect ratio will depend on plot dimensions (this used to be the default in versions of imager < 0.40) |
col.na |
which colour to use for NA values, as R rgb code. The default is "rgb(0,0,0,0)", which corresponds to a fully transparent colour. |
... |
other parameters to be passed to plot.default (eg "main") |
display, which is much faster, as.raster, which converts images to R raster objects
plot(boats,main="Boats") plot(boats,axes=FALSE,xlab="",ylab="") #Pixel values are rescaled to 0-1 by default, so that the following two plots are identical plot(boats) plot(boats/2,main="Rescaled") #If you don't want that behaviour, you can set rescale to FALSE, but #then you need to make sure values are in [0,1] try(plot(boats,rescale=FALSE)) #Error! try(plot(boats/255,rescale=FALSE)) #Works #You can specify a colour scale if you don't want the default one. #A colour scale is a function that takes pixels values and return an RGB code, #like R's rgb function,e.g. rgb(0,1,0) #Let's switch colour channels cscale <- function(r,g,b) rgb(b,g,r) plot(boats/255,rescale=FALSE,colourscale=cscale) #Display slice of HSV colour space im <- imfill(255,255,val=1) im <- list(Xc(im)/255,Yc(im)/255,im) %>% imappend("c") plot(im,colourscale=hsv,rescale=FALSE, xlab="Hue",ylab="Saturation") #In grayscale images, the colourscale function should take in a single value #and return an RGB code boats.gs <- grayscale(boats) #We use an interpolation function from package scales cscale <- scales::gradient_n_pal(c("red","purple","lightblue"),c(0,.5,1)) plot(boats.gs,rescale=FALSE,colourscale=cscale) #Plot a one-dimensional image imsub(boats,x==1) %>% plot(main="Image values along first column") #Plotting with and without anti-aliasing: boats.small <- imresize(boats,.3) plot(boats.small,interp=TRUE) plot(boats.small,interp=FALSE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.