- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to create multiple regression lines using ggplot2 in R?n
To create multiple regression lines using ggplot2, we can use grouping inside aes.
For example, if we have a data frame called that contains two numerical columns say x and y and a categorical column say C then the regression lines between x and y for all the categories in C can be created by using the below given command −
ggplot(df,aes(x,y,group=C))+geom_point()+stat_smooth(method="lm")
Example
Following snippet creates a sample data frame −
data(mtcars) head(mtcars,20)
Output
The following dataframe is created −
mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4 Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1 Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1 Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 0 3 2 Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1 Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 0 3 4 Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2 Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 0 4 2 Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 0 4 4 Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 0 4 4 Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 0 3 3 Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 0 3 3 Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 0 3 3 Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 0 3 4 Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 0 3 4 Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 0 3 4 Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 1 4 1 Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2 Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 1 4 1
To load ggplot2 package and create multiple regression lines between hp and mpg based on categories in cyl, add the following code to the above snippet −
library(ggplot2) ggplot(mtcars,aes(hp,mpg,group=cyl))+geom_point()+stat_smooth(method="lm") `geom_smooth()` using formula 'y ~ x'
Output
If you execute all the above given snippets as a single program, it generates the following Output −
- Related Articles
- Create multiple regression lines in a single plot using ggplot2 in R.
- How to create quantile regression plot with larger width of lines using ggplot2 in R?
- How to create dotted vertical lines in a plot using ggplot2 in R?
- How to create regression model line in a scatterplot created by using ggplot2 in R?
- How to create boxplot with multiple factor levels using ggplot2 in R?
- How to create two lines using ggplot2 based on a categorical column in R?
- How to limit the length of regression line using ggplot2 in R?
- How to plot the regression line starting from origin using ggplot2 in R?
- How to plot multiple time series using ggplot2 in R?
- How to create horizontal legend using ggplot2 in R?
- How to create facetted histograms using ggplot2 in R?
- How to create a scatterplot with regression line using ggplot2 with 0 intercept and slope equals to 1 in R?
- How to change legend for multiple histograms using ggplot2 in R?
- How to show multiple ggplot2 plots with Plotly using R?
- How to create multiple lines chart with unique line types in R?

Advertisements