3 Plots In R
- 3 Way Interaction Plot In R
- Plot In R Studio
- 3 Plots In R M
- 3 Plots In R T
- How To Plot Data In R
- Plot 3 Columns In R
- The Mosaic Plot in R Programming is very useful to visualize the data from the contingency table or two-way frequency table. The R Mosaic Plot draws a rectangle, and its height represents the proportional value. From the second example, you see the White color products are the least selling in.
- 4.3 Customising plots. All of the plots we’ve created so far in this Chapter are more than suitable for exploring your data. If however, you’d like to make them a little prettier (for your thesis, publication or even your own amusement) you’ll need to invest some time learning how to customise your plots.
Generic X-Y Plotting
Scatter plot with regression line. As we said in the introduction, the main use of scatterplots in R is to check the relation between variables.For that purpose you can add regression lines (or add curves in case of non-linear estimates) with the lines function, that allows you to customize the line width with the lwd argument or the line type with the lty argument, among other arguments. Ggplot2 is now over 10 years old and is used by hundreds of thousands of people to make millions of plots. That means, by-and-large, ggplot2 itself changes relatively little. When we do make changes, they will be generally to add new functions or arguments rather than changing the behaviour of existing functions, and if we do make changes to.
Generic function for plotting of R objects. For more details about the graphical parameter arguments, see par
.
For simple scatter plots, plot.default
will be used. However, there are plot
methods for many R objects, including function
s, data.frame
s, density
objects, etc. Use methods(plot)
and the documentation for these.
- Keywords
- hplot
Usage
Arguments
the coordinates of points in the plot. Alternatively, a single plotting structure, function or any R object with a plot
method can be provided.
the y coordinates of points in the plot, optional if x
is an appropriate structure.
Arguments to be passed to methods, such as graphical parameters (see par
). Many methods will accept the following arguments:
type
what type of plot should be drawn. Possible types are
'p'
for points,'l'
for lines,'b'
for both,'c'
for the lines part alone of'b'
,'o'
for both ‘overplotted’,'h'
for ‘histogram’ like (or ‘high-density’) vertical lines,'s'
for stair steps,'S'
for other steps, see ‘Details’ below,'n'
for no plotting.
type
s give a warning or an error; using, e.g., type = 'punkte'
being equivalent to type = 'p'
for S compatibility. Note that some methods, e.g.plot.factor
, do not accept this.main
an overall title for the plot: see title
.
sub
a sub title for the plot: see title
.
xlab
a title for the x axis: see title
.
ylab
a title for the y axis: see title
.
asp
the (y/x) aspect ratio, see plot.window
.
Details
The two step types differ in their x-y preference: Going from ((x1,y1)) to ((x2,y2)) with (x1 < x2), type = 's'
moves first horizontal, then vertical, whereas type = 'S'
moves the other way around.
See Also
plot.default
, plot.formula
and other methods; points
, lines
, par
. For thousands of points, consider using smoothScatter()
instead of plot()
.
For X-Y-Z plotting see contour
, persp
and image
.
Aliases
- plot
Examples
library(graphics)
# NOT RUN {require(stats) # for lowess, rpois, rnormplot(cars)lines(lowess(cars))plot(sin, -pi, 2*pi) # see ?plot.function## Discrete Distribution Plot:plot(table(rpois(100, 5)), type = 'h', col = 'red', lwd = 10, main = 'rpois(100, lambda = 5)')## Simple quantiles/ECDF, see ecdf() {library(stats)} for a better one:plot(x <- sort(rnorm(47)), type = 's', main = 'plot(x, type = 's')')points(x, cex = .5, col = 'dark red')# }
Community examples
```r # Plot with multiple lines in different color: plot(sin,-pi, 4*pi, col = 'red') plot(cos,-pi, 4*pi, col = 'blue', add = TRUE) ```
```r ## Plot with multiple lines in different color: plot(sin,-pi, 4*pi, col = 'red') plot(cos,-pi, 4*pi, col = 'blue', add = TRUE) ```
plot(basedata1$iq, basedata$read_ab, main='Diagrama de Dispersión', xlab = 'read_ab', ylab = 'iq')
## Linear Regression ExamplePlot points and add linear regression model line:```rlinreg <- lm(dist ~ speed, cars)linreg_coeffs <- coef(linreg)lineq <- paste('distance = ', linreg_coeffs[2], ' * speed + ', linreg_coeffs[1])plot(cars, main = 'Car distance by speed', sub = lineq, xlab = 'speed', ylab = 'distance', pch = 19)abline(linreg, col = 'blue')```
Pass a numeric vector to the `x` and `y` arguments, and you get a scatter plot. The `main` argument provides a [`title()`](https://www.rdocumentation.org/packages/graphics/topics/title). ```{r} plot(1:100, (1:100) ^ 2, main = 'plot(1:100, (1:100) ^ 2)') ``` If you only pass a single argument, it is interpreted as the `y` argument, and the `x` argument is the sequence from 1 to the length of `y`. ```{r} plot((1:100) ^ 2, main = 'plot((1:100) ^ 2)') ``` `cex` ('character expansion') controls the size of points. `lwd` controls the line width. `pch` controls the shape of points - you get 25 symbols to choose from, as well as alphabetic characters. `col` controls the color of the points. When `pch` is `21:25`, the points also get a background color which is set using `bg`. [`points()`](https://www.rdocumentation.org/packages/graphics/topics/points) for more on how to change the appearance of points in a scatter plot. ```{r} plot( 1:25, cex = 3, lwd = 3, pch = 1:25, col = rainbow(25), bg = c(rep(NA, 20), terrain.colors(5)), main = 'plot(1:25, pch = 1:25, ...)' ) ``` If you specify `type = 'l'`, you get a line plot instead. See [`plot.default()`](https://www.rdocumentation.org/packages/graphics/topics/plot.default) for a demonstration of all the possible values for type. ```{r} plot( (1:100) ^ 2, type = 'l', main = 'plot((1:100) ^ 2, type = 'l')' ) ``` `lty` controls the line type. `col` and `lwd` work in the same way as with points. [`lines()`](https://www.rdocumentation.org/packages/graphics/topics/lines) for more on how to change the appearance of lines in a line plot. ```{r} plot( (1:100) ^ 2, type = 'l', lty = 'dashed', lwd = 3, col = 'chocolate', main = 'plot((1:100) ^ 2, type = 'l', lty = 'dashed', ...)' ) ``` It is best practise to keep your `x` and `y` variables together, rather than as separate variables. ```{r} with( cars, plot(speed, dist, main = 'with(cars, plot(speed, dist))') ) ``` The formula interface, similar to modeling functions like [`lm()`](https://www.rdocumentation.org/packages/stats/topics/lm), makes this convenient. See [`plot.formula()`](https://www.rdocumentation.org/packages/graphics/topics/plot.formula) for more information. ```{r} plot( dist ~ speed, data = cars, main = 'plot(dist ~ speed, data = cars)' ) ``` If you pass a two column data frame or matrix then the columns are treated as the x and y values. So in this case, you can simply do: ```{r} plot(cars, main = 'plot(cars)') ``` The [`lines()`](https://www.rdocumentation.org/packages/graphics/topics/lines), [`points()`](https://www.rdocumentation.org/packages/graphics/topics/points) and [`title()`](https://www.rdocumentation.org/packages/graphics/topics/title) functions add lines, points and titles respectively to an existing plot. ```{r} plot(cars) lines(lowess(cars)) title('plot(cars); lines(lowess(cars))') ``` If the `x` variable is categorical, `plot()` knows to draw a box plot instead of a scatter plot. See [`boxplot()`](https://www.rdocumentation.org/packages/graphics/topics/boxplot) for more information on drawing those. ```{r} with( sleep, plot(group, extra, main = 'with(sleep, plot(group, extra))') ) ``` Again, the formula interface can be useful here. ```{r} plot(extra ~ group, sleep, main = 'plot(extra ~ group, sleep)') ``` Axis limits can be set using `xlim` and `ylim`. ```{r} plot( (1:100) ^ 2, xlim = c(-100, 200), ylim = c(2500, 7500), main = 'plot((1:100) ^ 2, xlim = c(-100, 200), ylim = c(2500, 7500))' ) ``` You can set log-scale axes using the `log` argument. ```{r} plot( exp(1:10), 2 ^ (1:10), main = 'plot(exp(1:10), 2 ^ (1:10))' ) plot( exp(1:10), 2 ^ (1:10), log = 'x', main = 'plot(exp(1:10), 2 ^ (1:10), log = 'x')' ) plot( exp(1:10), 2 ^ (1:10), log = 'y', main = 'plot(exp(1:10), 2 ^ (1:10), log = 'y')' ) plot( exp(1:10), 2 ^ (1:10), log = 'xy', main = 'plot(exp(1:10), 2 ^ (1:10), log = 'xy')' ) ``` If you pass a table of counts for a vector, `plot()` draws a simple histogram-like plot. See [`hist()`](https://www.rdocumentation.org/packages/graphics/topics/hist) for a more comprehensive histogram function. ```{r} plot( table(rpois(100, 5)), main = 'plot(table(rpois(100, 5)))' ) ``` For multi-dimensional tables, you get a mosaic plot. See [`mosaicplot()`](https://www.rdocumentation.org/packages/graphics/topics/mosaicplot) for more information. ```{r} plot( table(X = rpois(100, 5), Y = rbinom(100, 10, 0.75)), main = 'plot(table(X = rpois(100, 5), Y = rbinom(100, 10, 0.75)))' ) ``` You can also pass functions to plot. See [`curve()`](https://www.rdocumentation.org/packages/graphics/topics/curve) for more examples. ```{r} plot( sin, from = -pi, to = 2 * pi, main = 'plot(sin, from = -pi, to = 2 * pi)' ) ``` Use the axis function to give fine control over how the axes are created. See [`axis()`](https://www.rdocumentation.org/packages/graphics/topics/axis) and [`Axis()`](https://www.rdocumentation.org/packages/graphics/topics/Axis) for more info. ```{r} plot( sin, from = -pi, to = 2 * pi, axes = FALSE, main = 'plot(sin, axes = FALSE, ...); axis(1, ...); axis(2)' ) axis( 1, # bottom axis pi * (-1:2), c(expression(-pi), 0, expression(pi), expression(2 * pi)) ) axis(2) # left axis ``` Further graphical parameters can be set using [`par()`](https://www.rdocumentation.org/packages/graphics/topics/par). See [`with_par()`](https://www.rdocumentation.org/packages/withr/topics/with_par) for the best way to use `par()`. ```{r} old_pars <- par(las = 1) # horizontal axis labels plot((1:100) ^ 2, main = 'par(las = 1); plot((1:100) ^ 2)') par(old_pars) # reset parameters ```
Plot
The plot()
function is used to draw points (markers) in a diagram.
The function takes parameters for specifying points in the diagram.
Parameter 1 specifies points on the x-axis.
Parameter 2 specifies points on the y-axis.
At its simplest, you can use the plot()
function to plot two numbers against each other:
Example
Draw one point in the diagram, at position (1) and position (3):
Result:
Try it Yourself »To draw more points, use vectors:
Example
Draw two points in the diagram, one at position (1, 3) and one in position (8, 10):
Result:
Try it Yourself »Multiple Points
You can plot as many points as you like, just make sure you have the same number of points in both axis:
Example
3 Way Interaction Plot In R
Result:
Try it Yourself »For better organization, when you have many values, it is better to use variables:
Example
y <- c(3, 7, 8, 9, 12)
plot(x, y)
Result:
Try it Yourself »Sequences of Points
If you want to draw dots in a sequence, on both the x-axis and the y-axis, use the :
operator:
Example
Result:
Try it Yourself »Draw a Line
The plot()
function also takes a type
parameter with the value l
to draw a line to connect all the points in the diagram:
Example
Result:
Try it Yourself »Plot In R Studio
Plot Labels
The plot()
function also accept other parameters, such as main
, xlab
and ylab
if you want to customize the graph with a main title and different labels for the x and y-axis:
Example
Result:
Try it Yourself »Graph Appearance
There are many other parameters you can use to change the appearance of the points.
Colors
3 Plots In R M
Use col='color'
to add a color to the points:
Example
Result:
Try it Yourself »Size
Use cex=number
to change the size of the points (1
is default, while 0.5
means 50% smaller, and 2
means 100% larger):
Example
3 Plots In R T
Result:
Try it Yourself »Point Shape
Use pch
with a value from 0 to 25 to change the point shape format:
Example
Result:
Try it Yourself »How To Plot Data In R
The values of the pch
parameter ranges from 0 to 25, which means that we can choose up to 26 different types of point shapes: