Code For Ggplot
Code For Ggplot
Code_ggplot2
# Clear all variables
rm(list = ls(all = TRUE))
D<-cbind(D1,D2);D<-[Link](D)
D<-[Link](Date=index(D),coredata(D))
1
# (2) Different graphs in different figures----
# Generate two figures, f1 and f2.
f1<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC));f1
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=Obank));f2
2
# (3) Modify titles, axis labels, and caption for a figure----
# library()
library(quantmod) # For downloading data
library(ggplot2) # For plotting static figures
library(ggpubr) # For Arranging multiple graphs on the same page
# A: Default
f1<-ggplot(data=D)+geom_line(mapping=aes(x=Date,y=TSMC))
# B: Method 1: xlab(),ylab(),ggtitle()
f2<-ggplot(data=D)+geom_line(mapping=aes(x=Date,y=TSMC))+
xlab("DATE")+ylab("PRICE")+
ggtitle(label="Method 1: xlab(),ylab(),ggtitle()",
subtitle="2017-01-01 ~ 2022-12-31")
# C: Method 2: labs()
f3<-ggplot(data=D)+geom_line(mapping=aes(x=Date,y=TSMC))+
labs(x="DATE",
y ="PRICE",
title="Method 2:labs()",
subtitle= "2017-01-01 ~ 2022-12-31",
caption="Designed by Paul"
)
3
# (4) Aesthetics of geom_line()----
# library()
library(quantmod) # For downloading data
library(ggplot2) # For plotting static figures
library(ggpubr) # For Arranging multiple graphs on the same page
# Line color----
# A: Default
f1<-ggplot(data=D)+geom_line(mapping=aes(x=Date,y=TSMC))+
xlab("DATE")+ylab("PRICE")+ggtitle("Default color:Black")
# B: color="red"
f2<-ggplot(data=D)+geom_line(mapping=aes(x=Date,y=TSMC),color="red")+
xlab("DATE")+ylab("PRICE")+ggtitle('color="red"')
# C: color="#1E90FF"
f3<-ggplot(data=D)+geom_line(mapping=aes(x=Date,y=TSMC),color="#1E90FF")+
xlab("DATE")+ylab("PRICE")+ggtitle('color="#1E90FF"')
# Line size----
# A: Default
4
f1<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC))+
xlab("DATE")+ylab("PRICE")+ggtitle("Default size")
# B: Default
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC),size=0.5)+
xlab("DATE")+ylab("PRICE")+ggtitle("size=0.5")
# C: Default
f3<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC),size=1)+
xlab("DATE")+ylab("PRICE")+ggtitle("size=1")
# D: Default
f4<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC),size=2)+
xlab("DATE")+ylab("PRICE")+ggtitle("size=2")
# Line type----
# A: Default
f1<-ggplot(data=D[1:10,])+
geom_line(mapping=aes(x=Date,y=TSMC))+
xlab("DATE")+ylab("PRICE")+ggtitle("Default linetype")
# B: linetype = "solid" or 1
f2<-ggplot(data=D[1:10,])+
geom_line(mapping=aes(x=Date,y=TSMC),linetype=1)+
xlab("DATE")+ylab("PRICE")+ggtitle('linetype = "solid" or 1')
# C: linetype = "dashed" or 2
f3<-ggplot(data=D[1:10,])+
5
geom_line(mapping=aes(x=Date,y=TSMC),linetype="dashed")+
xlab("DATE")+ylab("PRICE")+ggtitle('linetype = "dashe"d or 2')
# D: linetype = "dotted" or 3
f4<-ggplot(data=D[1:10,])+
geom_line(mapping=aes(x=Date,y=TSMC),linetype=3)+
xlab("DATE")+ylab("PRICE")+ggtitle('linetype = "dotted" or 3')
# E: linetype = "dotdash" or 4
f5<-ggplot(data=D[1:10,])+
geom_line(mapping=aes(x=Date,y=TSMC),linetype="dotdash")+
xlab("DATE")+ylab("PRICE")+ggtitle('linetype = "dotdash" or 4')
# F: linetype = "longdash" or 5
f6<-ggplot(data=D[1:10,])+
geom_line(mapping=aes(x=Date,y=TSMC),linetype=5)+
xlab("DATE")+ylab("PRICE")+ggtitle('linetype = "longdash" or 5')
# G: linetype = "twodash" or 6
f7<-ggplot(data=D[1:10,])+
geom_line(mapping=aes(x=Date,y=TSMC),linetype="twodash")+
xlab("DATE")+ylab("PRICE")+ggtitle('linetype = "twodash" or 6')
6
# Line transparency----
# A: Default
f1<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC))+
xlab("DATE")+ylab("PRICE")+ggtitle("Default alpha")
# B: alpha=1
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC),alpha=1)+
xlab("DATE")+ylab("PRICE")+ggtitle("alpha=1")
# C: alpha=0.5
f3<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC),alpha=0.5)+
xlab("DATE")+ylab("PRICE")+ggtitle("alpha=0.5")
# D: alpha=0
f4<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC),alpha=0)+
xlab("DATE")+ylab("PRICE")+ggtitle("alpha=0")
# Exercise----
f<-ggplot(data=D)+
# Set data and aesthetics
geom_line(mapping=aes(x=Date,y=TSMC),
color="#1E90FF",
size=1,
linetype="dashed")+
# Set titles, subtitle, and caption
labs(x="DATE",
7
y ="PRICE",
title="The price of TSMC",
subtitle= "2017-01-01 ~ 2022-12-31",
caption="Designed by Paul"
);f
8
# (5) Different graphs in one figure -----
# library()
library(quantmod) # For downloading data
library(ggplot2) # For plotting static figures
library(ggpubr) # For Arranging multiple graphs on the same page
D<-cbind(D1,D2);D<-[Link](D)
D<-[Link](Date=index(D),coredata(D))
9
# Distinguish graphs by linetype
f3<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,linetype="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,linetype="UMC Price"))+
labs(x="Date",y ="Price", title="Distinguish graphs by linetype");f3
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","red"))+
labs(x="Date",y ="Price", title="Set the colors for different graphs")
10
# name----
f1<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"))+
labs(x="Date",y ="Price", title="Default")
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company")+
labs(x="Date",y ="Price", title="Set the name of legend table");
f3<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="")+
labs(x="Date",y ="Price", title="No name of legend table")
# breaks----
f1<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company"
)+labs(x="Date",y ="Price", title="Default")
11
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
breaks=c("TSMC Price","UMC Price")
)+labs(x="Date",y ="Price", title='breaks=c("TSMC
Price","UMC Price")')
f3<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
breaks=c("TSMC Price","")
)+labs(x="Date",y ="Price", title='breaks=c("TSMC
Price","")')
f4<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
breaks=c("","UMC Price")
)+labs(x="Date",y ="Price", title='breaks=c("","UMC
Price")')
f5<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
breaks=c("","")
)+ labs(x="Date",y ="Price", title='breaks=c("","")')
12
f6<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
breaks=""
)+labs(x="Date",y ="Price", title='breaks=""')
# labels----
f1<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company"
)+ labs(x="Date",y ="Price", title='Default')
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
labels=c("A:TSMC","B:UMC")
)+labs(x="Date",y ="Price",
title='labels=c("A:TSMC","B:UMC")')
f3<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
labels=c("TSMC","")
13
)+labs(x="Date",y ="Price", title='labels=c("TSMC","")')
f4<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
labels=c("","UMC")
)+labs(x="Date",y ="Price", title='labels=c("","UMC")')
f5<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
labels=c("","")
)+labs(x="Date",y ="Price", title='labels=c("","")')
f6<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
labels=""
)+labs(x="Date",y ="Price", title='labels=""')
# guide----
f1<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company"
14
)+
labs(x="Date",y ="Price", title='Default')
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,color="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,color="UMC Price"))+
scale_color_manual(values=c("blue","#009100"),
name="Company",
guide=NULL
)+
labs(x="Date",y ="Price", title='guide=NULL')
# scale_size_manual()----
# values
f1<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,size="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,size="UMC Price"))+
labs(x="Date",y ="Price", title="Default")
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,size="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,size="UMC Price"))+
scale_size_manual(values=c(1,0.3))+
labs(x="Date",y ="Price", title="Set the sizes of the graphs")
# Arrange multiple graphs on the same page.
p<-ggarrange(f1,f2,nrow =2, ncol = 1,labels="AUTO");p
p<-annotate_figure(p,top=text_grob("scale_size_manual()",face = "bold", size = 16));p
15
# scale_linetype_manual()----
# values
f1<-ggplot(data=D[1:10,])+
geom_line(mapping=aes(x=Date,y=TSMC,linetype="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,linetype="UMC Price"))+
labs(x="Date",y ="Price", title="Default")
f2<-ggplot(data=D[1:10,])+
geom_line(mapping=aes(x=Date,y=TSMC,linetype="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,linetype="UMC Price"))+
scale_linetype_manual(values=c(2,6))+
labs(x="Date",y ="Price", title="Set the linetype of the group graphs")
# Arrange multiple graphs on the same page.
p<-ggarrange(f1,f2,nrow =2, ncol = 1,labels="AUTO");p
p<-annotate_figure(p,top=text_grob("scale_linetype_manual()",face = "bold", size =
16));p
# scale_alpha_manual()----
# values
f1<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,alpha="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,alpha="UMC Price"))+
labs(x="Date",y ="Price", title="Default")
f2<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC,alpha="TSMC Price"))+
geom_line(mapping=aes(x=Date,y=UMC,alpha="UMC Price"))+
scale_alpha_manual(values=c(0.5,1))+
labs(x="Date",y ="Price", title="Set the alpha values of the group graphs")
# Arrange multiple graphs on the same page.
p<-ggarrange(f1,f2,nrow =2, ncol = 1,labels="AUTO");p
p<-annotate_figure(p,top=text_grob("scale_alpha_manual()",face = "bold", size = 16));p
16
# (6&7) scale_axis_type()----
# library()
library(quantmod) # For downloading data
library(ggplot2) # For plotting static figures
library(ggpubr) # For Arranging multiple graphs on the same page
# (6) scale_y_continuous-----
# Default axis
f1<-ggplot(data=r)+
geom_line(mapping=aes(x=Date,y=TSMC,colour="TSMC price"))+
geom_line(mapping=aes(x=Date,y=UMC,colour="UMC price"))+
labs(x="Date", title="Default axis ")
# name setting
f2<-ggplot(data=r)+
geom_line(mapping=aes(x=Date,y=TSMC,colour="TSMC price"))+
geom_line(mapping=aes(x=Date,y=UMC,colour="UMC price"))+
scale_y_continuous(name="Price",
)+
17
labs(x="Date", title='name="Price"')
f3<-ggplot(data=r)+
geom_line(mapping=aes(x=Date,y=TSMC,colour="TSMC price"))+
geom_line(mapping=aes(x=Date,y=UMC,colour="UMC price"))+
scale_y_continuous(name="",
)+
labs(x="Date", title='name=""')
# limits setting
f4<-ggplot(data=r)+
geom_line(mapping=aes(x=Date,y=TSMC,colour="TSMC price"))+
geom_line(mapping=aes(x=Date,y=UMC,colour="UMC price"))+
scale_y_continuous(name="Price",
limits=c(-0.2, 0.2),
)+
labs(x="Date", title="limits=c(-0.2, 0.2)")
# breaks setting
f5<-ggplot(data=r)+
geom_line(mapping=aes(x=Date,y=TSMC,colour="TSMC price"))+
geom_line(mapping=aes(x=Date,y=UMC,colour="UMC price"))+
scale_y_continuous(name="Price",
limits=c(-0.2, 0.2),
breaks=seq(from=-0.2,to=0.2,by=0.05)
)+
labs(x="Date", title="breaks=seq(from=-0.2,to=0.2,by=0.05)")
# labels setting
f6<-ggplot(data=r)+
geom_line(mapping=aes(x=Date,y=TSMC,colour="TSMC price"))+
geom_line(mapping=aes(x=Date,y=UMC,colour="UMC price"))+
scale_y_continuous(name="Price (%)",
limits=c(-0.2, 0.2),
18
breaks=seq(from=-0.2,to=0.2,by=0.05),
labels=seq(from=-0.2,to=0.2,by=0.05)*100
)+
labs(x="Date", title='name="Price (%)"";labels=seq(from=-0.2,to=0.2,by=0.05)*100')
# guide setting
f7<-ggplot(data=r)+
geom_line(mapping=aes(x=Date,y=TSMC,colour="TSMC price"))+
geom_line(mapping=aes(x=Date,y=UMC,colour="UMC price"))+
scale_y_continuous(guide = NULL)+
labs(x="Date", title="guide = NULL")
f8<-ggplot(data=r)+
geom_line(mapping=aes(x=Date,y=TSMC,colour="TSMC price"))+
geom_line(mapping=aes(x=Date,y=UMC,colour="UMC price"))+
scale_y_continuous(name="",guide = NULL
)+
labs(x="Date", title=' " " ; guide = NULL')
# (7) scale_x_date-----
# Default axis
f1<-ggplot(data=r)+
geom_line(mapping=aes(x=Date,y=TSMC,colour="TSMC"))+
geom_line(mapping=aes(x=Date,y=UMC,colour="UMC price"))+
scale_y_continuous(name="Return (%)",
limits=c(-0.2, 0.2),
breaks=seq(from=-0.2,to=0.2,by=0.05),
labels=seq(from=-0.2,to=0.2,by=0.05)*100
)+
19
labs(x="Date", title='Default')
# guide
f2<-f1+scale_x_date(guide = NULL)+labs(x="Date", title='guide=NULL')
# name
f3<-f1+scale_x_date(name="DATE" )+labs(x="Date", title='name="DATE"')
# Arrange multiple graphs on the same page.
p<-ggarrange(f1,f2,f3,nrow =3, ncol = 1,labels="AUTO");p
p<-annotate_figure(p,top=text_grob("scale_x_date()",face = "bold", size = 16));p
# limits
f4<-f1+scale_x_date(name="DATE",
limits=[Link](c("2016-01-01","2022-12-31"))
)+labs(x="Date", title='limits')
# date_breaks
f5<-f1+
scale_x_date(name="DATE",
limits=[Link](c("2016-01-01","2022-12-31")),
date_breaks="1 year"
)+
labs(x="Date", title='date_breaks')
# date_minor_breaks
f6<-f1+
scale_x_date(name="DATE",
limits=[Link](c("2016-01-01","2022-12-31")),
date_breaks="1 year",
date_minor_breaks="3 month"
)+
labs(x="Date", title='date_minor_breaks')
# date_labels
20
f7<-f1+
scale_x_date(date_labels="%y")+
labs(x="Date", title='%y')
f8<-f1+
scale_x_date(date_labels="%Y-%m")+
labs(x="Date", title="%Y-%m")
f9<-f1+
scale_x_date(date_labels="%Y-%m-%d")+
labs(x="Date", title="%Y-%m-%d")
f10<-f1+
scale_x_date(date_labels="%Y/%B")+
labs(x="Date", title="%Y-%B")
f11<-f1+
scale_x_date(date_labels="%Y/%b")+
labs(x="Date", title="%Y-%b")
21
# (8) Modify theme----
# library()
library(quantmod) # For downloading data
library(ggplot2) # For plotting static figures
library(ggpubr) # For Arranging multiple graphs on the same page
library(ggThemeAssist) # For modifying theme
# Modify theme----
f<-ggplot(data=D)+
geom_line(mapping=aes(x=Date,y=TSMC))
f1<-f+theme_gray() #
f2<-f+theme_bw()
f3<-f+theme_linedraw()
f4<-f+theme_light()
f5<-f+theme_dark()
f6<-f+theme_minimal()
f7<-f+theme_classic()
f8<-f+theme_void()
22
# (9) geom_col()----
# library()
library(quantmod) # For downloading data
library(ggplot2) # For plotting static figures
library(ggpubr) # For Arranging multiple graphs on the same page
23
# Default (No labels)
f1<-ggplot(data=M)+
geom_col(aes(x=Q, y=V),
color="red",
fill="#BBFFBB")+
labs(x="Quarter",y ="Volume", title="Default (No labels)")
# label
f2<-f1+
geom_text(aes(x=Q, y=V, label=V))+
labs(x="Quarter",y ="Volume", title="label=V")
# size, color
f3<-f1+
geom_text(aes(x=Q, y=V,label=V),size=7,color="blue")+
labs(x="Quarter",y ="Volume", title='size=7,color="blue"')
# Positions of labels
# Default
f<-ggplot(data=M)+
geom_col(aes(x=Q, y=V),
color="red",
fill="#BBFFBB")+
labs(x="Quarter",y ="Volume", title="Default (No labels)")
24
# vjust
f1<-f+
geom_text(aes(x=Q, y=V, label=V),vjust=-1)+
labs(x="Quarter",y ="Volume", title="vjust=-1")
f2<-f+
geom_text(aes(x=Q, y=V, label=V),vjust=-0.5)+
labs(x="Quarter",y ="Volume", title="vjust=-0.5")
f3<-f+
geom_text(aes(x=Q, y=V, label=V),vjust=0)+
labs(x="Quarter",y ="Volume", title="vjust=0 (default)")
f4<-f+
geom_text(aes(x=Q, y=V, label=V),vjust=0.5)+
labs(x="Quarter",y ="Volume", title="vjust=0.5")
f5<-f+
geom_text(aes(x=Q, y=V, label=V),vjust=1)+
labs(x="Quarter",y ="Volume", title="vjust=1")
f1<-f+
geom_text(aes(x=Q, y=V, label=V),hjust=-0.5)+
labs(x="Quarter",y ="Volume", title="hjust=-0.5")
f2<-f+
geom_text(aes(x=Q, y=V, label=V),hjust=0)+
labs(x="Quarter",y ="Volume", title="hjust=0")
f3<-f+
geom_text(aes(x=Q, y=V, label=V),hjust=0.5)+
labs(x="Quarter",y ="Volume", title="hjust=0.5 (default)")
f4<-f+
25
geom_text(aes(x=Q, y=V, label=V),hjust=1)+
labs(x="Quarter",y ="Volume", title="hjust=1")
f5<-f+
geom_text(aes(x=Q, y=V, label=V),hjust=1.5)+
labs(x="Quarter",y ="Volume", title="hjust=1.5")
26