Plotting in R Part III - Background

In Part I, I have discussed about the basic plot and axis modification/enhancement
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")

ggplot(tbl, aes(x=Name, y=SepalLength, fill = Name)) + 
  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