In Part II, I have discussed about grid line modification/enhancement
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)
library(stringr)
library(ggpubr)
library(jpeg)
# 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 Backgrounds
- Modify the panel background
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" = "lightcyan4", "Iris-virginica" = "darkolivegreen4")) +
theme(panel.grid = element_blank()) +
theme(panel.background = element_rect(fill = 'bisque2', colour = 'black'))
fill = 'bisque2' - as it says its the fill color
colour = 'black' - this is the border color
Output
- Modify the plot background
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" = "lightcyan4", "Iris-virginica" = "darkolivegreen4")) +
theme(panel.grid = element_blank()) +
theme(panel.background = element_rect(fill = 'bisque2', colour = 'black')) +
theme(plot.background = element_rect(fill = 'aquamarine3', colour = 'coral4'))
fill = 'aquamarine3' - as it says its the fill color
colour = 'coral4' - this is the border color
Output
- Add image as background
To do this you need to install packages ggpubr, jpeg
For this tutorial purposes I have created a image.
Code
# load image
img <- readJPEG("Posts/ggplot3/backgg.jpg")
background_image(img) +
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" = "lightcyan4", "Iris-virginica" = "darkolivegreen4")) +
theme(panel.grid = element_blank()) +
theme(plot.background = element_rect(fill = 'aquamarine3', colour = 'coral4'))
Please note the image is added before box plot is plotted in the code.
Output
That is the end of part III 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