Line Plot using ggplot2 in R
Last Updated :
19 May, 2023
In a line graph, we have the horizontal axis value through which the line will be ordered and connected using the vertical axis values. We are going to use the R package ggplot2 which has several layers in it.
First, you need to install the ggplot2 package if it is not previously installed in R Studio.
Function Used:
- geom_line connects them in the order of the variable on the horizontal (x) axis.
Syntax:
geom_line(mapping=NULL, data=NULL, stat=”identity”, position=”identity”,…)
- geom_path connects the observation in the same order as in data
Syntax:
geom_path(mapping=NULL, data=NULL, stat=”identity”, position=”identity”,…)
Single Line Plot
In this section, we will be dealing with a single-line chart and will also discuss various attributes that help its appearance.
Data Set in Use:
R
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
head(val)
Output:
course num
1 DSA 77
2 C++ 55
3 R 80
4 Python 60
Basic Line Plot
For a simple line chart data is roughly passed to the function with some required attributes.
Example:
R
library(ggplot2)
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
# Basic Line
ggplot(data=val, aes(x=course, y=num, group=1)) +
geom_line()+
geom_point()
Output:
Line plotFormatting Line
For this, the command line type is used. ggplot2 provides various line types. For example dotted, two dash, dashed, etc. This attribute is passed with a required value.
Example:
R
library(ggplot2)
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
# Format the line type
ggplot(data=val, aes(x=course, y=num, group=1)) +
geom_line(linetype = "dotted")+
geom_point()
Output:
Line plot
The command color is used and the desired color is written in double quotes [" "] inside geom_line( ).
Example:
R
library(ggplot2)
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
# Format the line color
ggplot(data=val, aes(x=course, y=num, group=1)) +
geom_line(color="green")+
geom_point()
Output:
Line plot
The line size can be changed using the command size and providing the value of the size inside geom_line( ).
Example:
R
library(ggplot2)
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
# Format the line size
ggplot(data=val, aes(x=course, y=num, group=1)) +
geom_line(color="green",size=1.5)+
geom_point()
Output:
Line plotAdding Chart Title, Axis Title
ggtitle() with the appropriate title can be used to add chart title and labs again with appropriate input can be used to add axes title.
Example:
R
library(ggplot2)
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
# Adding titles
line<-ggplot(data=val, aes(x=course, y=num, group=1)) +
geom_line(color="green",size=1.5)+
geom_point()
line+ggtitle("Courses vs Students Enrolled in GeeksforGeeks")+
labs(x="Courses",y="Number of Students")
Output:
Line plotChanging the Theme
Use theme_theme_name() to add the theme. There are a lot of themes available in R library. For example: dark, classic, etc. Values can be provided as desired.
Example:
R
library(ggplot2)
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
# Adding titles
line<-ggplot(data=val, aes(x=course, y=num, group=1)) +
geom_line(color="green",size=1.5)+
geom_point()
line+ggtitle("Courses vs Students Enrolled in GeeksforGeeks")+
labs(x="Courses",y="Number of Students")+
theme_dark()
Output:
Line plotAdding arrow
To add an arrow in line use the grid library is used. Then to add arrows use the arrow( ) to add an arrow. It is also possible to change the parameters in an arrow like angle, type, ends.
Example:
R
library(ggplot2)
library(grid)
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
# Adding an arrow
ggplot(data=val, aes(x=course, y=num, group=1)) +
geom_line(arrow=arrow())+
geom_point()
# Adding closed arrow on both ends of the line
arr=arrow(angle = 20, ends = "both", type = "closed")
ggplot(data=val, aes(x=course, y=num, group=1)) +
geom_line(arrow=arr)+
geom_point()
Output:
Line plotAdding Data labels
Use label to get the values in y-axis and nudge_y to place the data label.
Example:
R
library(ggplot2)
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
# Adding data label
ggplot(data=val, aes(x=course, y=num, group=1, label=num)) +
geom_line()+
geom_point()+
geom_text(nudge_y = 2)
Output:
Line plotScaling axis :
Use xlim( ) to change the x-axis scale and ylim( ) to change the y-axis scale and pass appropriate values to these.
Syntax:
xlim(min,max)
ylim(min,max)
Example:
R
library(ggplot2)
# Create data for chart
val <-data.frame(course=c('DSA','C++','R','Python'),
num=c(77,55,80,60))
# Storing the line plot
ln <-ggplot(data=val, aes(x=course, y=num, group=1)) +
geom_line(color="green",size=2)+
geom_point()
# y-axis limits
ln+ylim(0,100)+
theme_dark()
Output:
Line plotPlotting Multiple lines
For plotting multiple plots into one, nothing changes except that group attribute has to set to the name of the column on the basis of which different lines will be drawn.
Example:
R
library(ggplot2)
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
dose=rep(c("D1", "D2"),2),
slots=c(33, 45, 66, 50))
# Plotting line with multiple groups
ggplot(data=vacc, aes(x=dose, y=slots, group=type)) +
geom_line(linetype="longdash", color="green", size=1.5)+
geom_point(color="red", size=5)+
theme_dark()
Output:
Line plot
You can also add title, axes title, data labels in the above line plot as discussed in the previous section.
Formatting the plot :
- Using separate line types based on groups
To differentiate the lines by changing the type of line provide the line type in geom_line() and shape for the legend in geom_point().
Example:
R
library(ggplot)
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
dose=rep(c("D1", "D2"),2),
slots=c(33, 45, 66, 50))
# Changing the line type on the basis of groups
ggplot(vacc, aes(x=dose, y=slots, group=type)) +
geom_line(aes(linetype=type))+
geom_point()+
theme_classic()
# Changing the line type on the basis of groups and also the shape of points
ggplot(vacc, aes(x=dose, y=slots, group=type)) +
geom_line(aes(linetype=type))+
geom_point(aes(shape=type))+
theme_classic()
Output:
Line plot- Assigning different line colors on the basis of groups
The following code automatically controls color using the level of the variable "type". It will assign separate colors to each line.
Example:
R
library(ggplot2)
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
dose=rep(c("D1", "D2"),2),
slots=c(33, 45, 66, 50))
# Change line color by group type of vaccine
ln <-ggplot(vacc, aes(x=dose, y=slots, group=type)) +
geom_line(aes(color=type))+
geom_point(aes(color=type))+
theme_classic()
ln
Output:
Line Plot
To enter color manually you can use :
- scale_color_brewer( ) : It uses different color palettes from the RColorBrewer package. It has various color palettes.
- scale_color_manual( ) : It is used to manually add discrete colors.
Example:
R
library(ggplot2)
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
dose=rep(c("D1", "D2"),2),
slots=c(33, 45, 66, 50))
# Change line color by group type of vaccine
ln <-ggplot(vacc, aes(x=dose, y=slots, group=type)) +
geom_line(aes(color=type))+
geom_point(aes(color=type))+
theme_classic()
# Adding line colors using brewer color palette
ln+scale_color_brewer(palette="Set2")
# Adding line colors using color manual
ln+scale_color_manual(values=c("green", "blue"))
Output:
Multiple line plot- Changing the position of legends
For changing the legend position legen.position attribute of the theme function is passed with the required value.
Syntax:
theme(legend.position="pos")
pos It can be top, right, bottom, left or none
Example:
R
library(ggplot2)
# Inserting data
vacc <- data.frame(type=rep(c("Covishield", "Covaxin"), each=2),
dose=rep(c("D1", "D2"),2),
slots=c(33, 45, 66, 50))
# Change line color by group type of vaccine
ln <-ggplot(vacc, aes(x=dose, y=slots, group=type)) +
geom_line(aes(color=type))+
geom_point(aes(color=type))+
theme_classic()
ln <- ln + scale_color_brewer(palette="Dark2")+
theme_classic()
# Legend at top
ln + theme(legend.position="top")
# Legend at left
ln + theme(legend.position="left")
# Remove legend
ln + theme(legend.position="none")
Output:
Multiple line plot
Similar Reads
Data visualization with R and ggplot2 The ggplot2 ( Grammar of Graphics ) is a free, open-source visualization package widely used in R Programming Language. It includes several layers on which it is governed. The layers are as follows:Layers with the grammar of graphicsData: The element is the data set itself.Aesthetics: The data is to
7 min read
Introduction to ggplot2
Working with External Data
Basic Plotting with ggplot2
Plot Only One Variable in ggplot2 Plot in RIn this article, we will be looking at the two different methods to plot only one variable in the ggplot2 plot in the R programming language. Draw ggplot2 Plot Based On Only One Variable Using ggplot & nrow Functions In this approach to drawing a ggplot2 plot based on the only one variable, firs
5 min read
How to create a plot using ggplot2 with Multiple Lines in R ?In this article, we will discuss how to create a plot using ggplot2 with multiple lines in the R programming language. Method 1: Using geom_line() function In this approach to create a ggplot with multiple lines, the user need to first install and import the ggplot2 package in the R console and then
3 min read
Plot Lines from a List of DataFrames using ggplot2 in RFor data visualization, the ggplot2 package is frequently used because it allows us to create a wide range of plots. To effectively display trends or patterns, we can combine multiple data frames to create a combined plot.Syntax: ggplot(data = NULL, mapping = aes(), colour())Parameters:data - Defaul
3 min read
How to plot a subset of a dataframe using ggplot2 in R ?In this article, we will discuss plotting a subset of a data frame using ggplot2 in the R programming language. Dataframe in use: Â AgeScoreEnrollNo117700521880103177915419752051885256199630717903581971409188345 To get a complete picture, let us first draw a complete data frame. Example: R # Load ggp
9 min read
Change Theme Color in ggplot2 Plot in RA theme in ggplot2 is a collection of settings that control the non-data elements of the plot. These settings include things like background colors, grid lines, axis labels, and text sizes. we can use various theme-related functions to customize the appearance of your plots, including changing theme
4 min read
Modify axis, legend, and plot labels using ggplot2 in RIn this article, we are going to see how to modify the axis labels, legend, and plot labels using ggplot2 bar plot in R programming language. For creating a simple bar plot we will use the function geom_bar( ). Syntax: geom_bar(stat, fill, color, width) Parameters :Â Â stat : Set the stat parameter to
5 min read
Common Geometric Objects (Geoms)
Comprehensive Guide to Scatter Plot using ggplot2 in RScatter plot uses dots to represent values for two different numeric variables and is used to observe relationships between those variables. To plot the Scatter plot we will use we will be using the geom_point() function. This function is available in ggplot2 package which is a free and open-source
7 min read
Line Plot using ggplot2 in RIn a line graph, we have the horizontal axis value through which the line will be ordered and connected using the vertical axis values. We are going to use the R package ggplot2 which has several layers in it. First, you need to install the ggplot2 package if it is not previously installed in R Stu
6 min read
R - Bar ChartsBar charts provide an easy method of representing categorical data in the form of bars. The length or height of each bar represents the value of the category it represents. In R, bar charts are created using the function barplot(), and it can be applied both for vertical and horizontal charts.Syntax
4 min read
Histogram in R using ggplot2A histogram is an approximate representation of the distribution of numerical data. In a histogram, each bar groups numbers into ranges. Taller bars show that more data falls in that range. It is used to display the shape and spread of continuous sample data.Plotting Histogram using ggplot2 in RWe c
5 min read
Box plot in R using ggplot2A box plot is a graphical display of a data set which indicates its distribution and highlights potential outliers It displays the range of the data, the median, and the quartiles, making it easy to observe the spread and skewness of the data.In ggplot2, the geom_boxplot() function is used to create
5 min read
geom_area plot with areas and outlines in ggplot2 in RAn Area Plot helps us to visualize the variation in quantitative quantity with respect to some other quantity. It is simply a line chart where the area under the plot is colored/shaded. It is best used to study the trends of variation over a period of time, where we want to analyze the value of one
3 min read
Advanced Data Visualization Techniques
Combine two ggplot2 plots from different DataFrame in RIn this article, we are going to learn how to Combine two ggplot2 plots from different DataFrame in R Programming Language. Here in this article we are using a scatter plot, but it can be applied to any other plot. Let us first individually draw two ggplot2 Scatter Plots by different DataFrames then
2 min read
Annotating text on individual facet in ggplot2 in RIn this article, we will discuss how to annotate a text on the Individual facet in ggplot2 in R Programming Language. To plot facet in R programming language, we use the facet_grid() function from the ggplot2 library. The facet_grid() is used to form a matrix of panels defined by row and column face
5 min read
How to annotate a plot in ggplot2 in R ?In this article, we will discuss how to annotate functions in R Programming Language in ggplot2 and also read the use cases of annotate. What is annotate?An annotate function in R can help the readability of a plot. It allows adding text to a plot or highlighting a specific portion of the curve. Th
4 min read
Annotate Text Outside of ggplot2 Plot in RGgplot2 is based on the grammar of graphics, the idea that you can build every graph from the same few components: a data set, a set of geomsâvisual marks that represent data points, and a coordinate system. There are many scenarios where we need to annotate outside the plot area or specific area as
2 min read
How to put text on different lines to ggplot2 plot in R?ggplot2 is a plotting package in R programming language that is used to create complex plots from data specified in a data frame. It provides a more programmatic interface for specifying which variables to plot onto the graphical device, how they are displayed, and general visual properties. In thi
3 min read
How to Connect Paired Points with Lines in Scatterplot in ggplot2 in R?In this article, we will discuss how to connect paired points in scatter plot in ggplot2 in R Programming Language. Scatter plots help us to visualize the change in two more categorical clusters of data. Sometimes, we need to work with paired quantitative variables and try to visualize their relatio
2 min read
How to highlight text inside a plot created by ggplot2 using a box in R?In this article, we will discuss how to highlight text inside a plot created by ggplot2 using a box in R programming language. There are many ways to do this, but we will be focusing on one of the ways. We will be using the geom_label function present in the ggplot2 package in R. This function allo
3 min read
Adding labels, titles, and legends in r
Working with Legends in R using ggplot2A legend in a plot helps us to understand which groups belong to each bar, line, or box based on its type, color, etc. We can add a legend box in R using the legend() function. These work as guides. The keys can be determined by scale breaks. In this article, we will be working with legends and asso
6 min read
How to Add Labels Directly in ggplot2 in RLabels are textual entities that have information about the data point they are attached to which helps in determining the context of those data points. In this article, we will discuss how to directly add labels to ggplot2 in R programming language. To put labels directly in the ggplot2 plot we add
5 min read
How to change legend title in ggplot2 in R?In this article, we will see how to change the legend title using ggplot2 in R Programming. We will use ScatterPlot. For the Data of Scatter Plot, we will pick some 20 random values for the X and Y axis both using rnorm() function which can generate random normal values, and here we have one more p
3 min read
How to change legend title in R using ggplot ?A legend helps understand what the different plots on the same graph indicate. They basically provide labels or names for useful data depicted by graphs. In this article, we will discuss how legend names can be changed in R Programming Language. Let us first see what legend title appears by default.
2 min read
Customizing Visual Appearance
Handling Data Subsets: Faceting
How to create a faceted line-graph using ggplot2 in R ?A potent visualization tool that enables us to investigate the relationship between two variables at various levels of a third-category variable is the faceted line graph. The ggplot2 tool in R offers a simple and versatile method for making faceted line graphs. This visual depiction improves our co
6 min read
How to Combine Multiple ggplot2 Plots in R?In this article, we will discuss how to combine multiple ggplot2 plots in the R programming language. Combining multiple ggplot2 plots using '+' sign to the final plot In this method to combine multiple plots, here the user can add different types of plots or plots with different data to a single p
2 min read
Change Labels of GGPLOT2 Facet Plot in RIn this article, we will see How To Change Labels of ggplot2 Facet Plot in R Programming language. To create a ggplot2 plot, we have to load ggplot2 package. library() function is used for that. Then either create or load dataframe. Create a regular plot with facets. The labels are added by default
3 min read
Change Font Size of ggplot2 Facet Grid Labels in RIn this article, we will see how to change font size of ggplot2 Facet Grid Labels in R Programming Language. Let us first draw a regular plot without any changes so that the difference is apparent. Example: R library("ggplot2") DF <- data.frame(X = rnorm(20), Y = rnorm(20), group = c("Label 1",
2 min read
Remove Labels from ggplot2 Facet Plot in RIn this article, we will discuss how to remove the labels from the facet plot in ggplot2 in the R Programming language. Facet plots, where one subsets the data based on a categorical variable and makes a series of similar plots with the same scale. We can easily plot a facetted plot using the facet_
2 min read
Grouping Data: Dodge and Position Adjustments