We will start from end of Part I.
Recap:
The libraries and data set needed.
Library: ggplot2, stringr
Dataset: iris (to be loaded from local drive)
IDE: RStudio
# First load the library
library(ggplot2)
# The set your working directory
setwd("C:/R_Train") # please replace with your own directory
# Read the file and create a data frame
tbl <- read.csv("Sample Data/iris.csv")
Get the csv file from here.
data source
Modify the grid lines
The grid can be modified individually using panel.grid.major.x, panel.grid.major.y, panel.grid.minor.x and panel.grid.minor.y.
Recap:
The libraries and data set needed.
Library: ggplot2, stringr
Dataset: iris (to be loaded from local drive)
IDE: RStudio
# First load the library
library(ggplot2)
# The set your working directory
setwd("C:/R_Train") # please replace with your own directory
# Read the file and create a data frame
tbl <- read.csv("Sample Data/iris.csv")
Get the csv file from here.
data source
Modify the grid lines
The grid can be modified individually using panel.grid.major.x, panel.grid.major.y, panel.grid.minor.x and panel.grid.minor.y.
- change the color of the major grid of y axis.
Code
ggplot(tbl, aes(x=Name, y=SepalLength, fill = Name)) +
geom_bar(stat="identity", width = 0.3) +
theme(axis.title.x = element_text(size = 20, color = "blue", face = "italic")) +
theme(axis.text.x = element_text(size = 10, color = "firebrick3", face = "bold")) +
scale_x_discrete(labels = function(x) str_wrap(x, width = 10)) +
theme(axis.title.y = element_text(size = 20, color = "blue", face = "italic")) +
scale_y_continuous(limits = c(0,350), breaks = seq(0,350,50)) +
scale_fill_manual("legend", values = c("Iris-setosa" = "indianred3", "Iris-versicolor" = "lightcyan2", "Iris-virginica" = "darkolivegreen2")) +
theme(panel.grid.major.y = element_line(colour = "black"))
Output
- Change the color of the minor grid of y axis.
ggplot(tbl, aes(x=Name, y=SepalLength, fill = Name)) +
geom_bar(stat="identity", width = 0.3) +
theme(axis.title.x = element_text(size = 20, color = "blue", face = "italic")) +
theme(axis.text.x = element_text(size = 10, color = "firebrick3", face = "bold")) +
scale_x_discrete(labels = function(x) str_wrap(x, width = 10)) +
theme(axis.title.y = element_text(size = 20, color = "blue", face = "italic")) +
scale_y_continuous(limits = c(0,350), breaks = seq(0,350,50)) +
scale_fill_manual("legend", values = c("Iris-setosa" = "indianred3", "Iris-versicolor" = "lightcyan2", "Iris-virginica" = "darkolivegreen2")) +
theme(panel.grid.major.y = element_line(colour = "black"), panel.grid.minor.y = element_line(colour = "blue"))
- Change the color of the grid of x axis
ggplot(tbl, aes(x=Name, y=SepalLength, fill = Name)) +
geom_bar(stat="identity", width = 0.3) +
theme(axis.title.x = element_text(size = 20, color = "blue", face = "italic")) +
theme(axis.text.x = element_text(size = 10, color = "firebrick3", face = "bold")) +
scale_x_discrete(labels = function(x) str_wrap(x, width = 10)) +
theme(axis.title.y = element_text(size = 20, color = "blue", face = "italic")) +
scale_y_continuous(limits = c(0,350), breaks = seq(0,350,50)) +
scale_fill_manual("legend", values = c("Iris-setosa" = "indianred3", "Iris-versicolor" = "lightcyan2", "Iris-virginica" = "darkolivegreen2")) +
theme(panel.grid.major.y = element_line(colour = "black"), panel.grid.minor.y = element_line(colour = "blue")) +
theme(panel.grid.major.x = element_line(colour = "black"))
Output
- Change major grids color at once.
Code
ggplot(tbl, aes(x=Name, y=SepalLength, fill = Name)) +
geom_bar(stat="identity", width = 0.3) +
theme(axis.title.x = element_text(size = 20, color = "blue", face = "italic")) +
theme(axis.text.x = element_text(size = 10, color = "firebrick3", face = "bold")) +
scale_x_discrete(labels = function(x) str_wrap(x, width = 10)) +
theme(axis.title.y = element_text(size = 20, color = "blue", face = "italic")) +
scale_y_continuous(limits = c(0,350), breaks = seq(0,350,50)) +
scale_fill_manual("legend", values = c("Iris-setosa" = "indianred3", "Iris-versicolor" = "lightcyan2", "Iris-virginica" = "darkolivegreen2")) +
theme(panel.grid.major = element_line(colour = "black"))
Output
- Change all the grids at once
Code
ggplot(tbl, aes(x=Name, y=SepalLength, fill = Name)) +
geom_bar(stat="identity", width = 0.3) +
theme(axis.title.x = element_text(size = 20, color = "blue", face = "italic")) +
theme(axis.text.x = element_text(size = 10, color = "firebrick3", face = "bold")) +
scale_x_discrete(labels = function(x) str_wrap(x, width = 10)) +
theme(axis.title.y = element_text(size = 20, color = "blue", face = "italic")) +
scale_y_continuous(limits = c(0,350), breaks = seq(0,350,50)) +
scale_fill_manual("legend", values = c("Iris-setosa" = "indianred3", "Iris-versicolor" = "lightcyan2", "Iris-virginica" = "darkolivegreen2")) +
theme(panel.grid = element_line(colour = "black"))
Output
But in some cases you don't want the grid lines.
- remove x grid lines
Code
ggplot(tbl, aes(x=Name, y=SepalLength, fill = Name)) +
geom_bar(stat="identity", width = 0.3) +
theme(axis.title.x = element_text(size = 20, color = "blue", face = "italic")) +
theme(axis.text.x = element_text(size = 10, color = "firebrick3", face = "bold")) +
scale_x_discrete(labels = function(x) str_wrap(x, width = 10)) +
theme(axis.title.y = element_text(size = 20, color = "blue", face = "italic")) +
scale_y_continuous(limits = c(0,350), breaks = seq(0,350,50)) +
scale_fill_manual("legend", values = c("Iris-setosa" = "indianred3", "Iris-versicolor" = "lightcyan2", "Iris-virginica" = "darkolivegreen2")) +
theme(panel.grid.major.x = element_blank())
Output
- remove the y minor grid lines
Code
ggplot(tbl, aes(x=Name, y=SepalLength, fill = Name)) +
geom_bar(stat="identity", width = 0.3) +
theme(axis.title.x = element_text(size = 20, color = "blue", face = "italic")) +
theme(axis.text.x = element_text(size = 10, color = "firebrick3", face = "bold")) +
scale_x_discrete(labels = function(x) str_wrap(x, width = 10)) +
theme(axis.title.y = element_text(size = 20, color = "blue", face = "italic")) +
scale_y_continuous(limits = c(0,350), breaks = seq(0,350,50)) +
scale_fill_manual("legend", values = c("Iris-setosa" = "indianred3", "Iris-versicolor" = "lightcyan2", "Iris-virginica" = "darkolivegreen2")) +
theme(panel.grid.major.x = element_blank(), panel.grid.minor.y = element_blank())
Output
- remove all the grid lines
Code
ggplot(tbl, aes(x=Name, y=SepalLength, fill = Name)) +
geom_bar(stat="identity", width = 0.3) +
theme(axis.title.x = element_text(size = 20, color = "blue", face = "italic")) +
theme(axis.text.x = element_text(size = 10, color = "firebrick3", face = "bold")) +
scale_x_discrete(labels = function(x) str_wrap(x, width = 10)) +
theme(axis.title.y = element_text(size = 20, color = "blue", face = "italic")) +
scale_y_continuous(limits = c(0,350), breaks = seq(0,350,50)) +
scale_fill_manual("legend", values = c("Iris-setosa" = "indianred3", "Iris-versicolor" = "lightcyan2", "Iris-virginica" = "darkolivegreen2")) +
theme(panel.grid = element_blank())
Output
That is the end of part 2 of Plotting In R.
If you have any specific request configuring ggplot2, please leave a comment. I will try to add to in the current posts or cover that in future posts.
No comments:
Post a Comment