1. Create a new text file and name it “Figure 4a dataset.txt”
2. Copy the data below in the text file; save and close
Patients Luminance mean se 0.00 0.0236 7 1 0.00 0.2360 15 1 0.00 2.36 25 1 0.00 23.6 33 1 0.00 236 42 1 1.00 0.0236 5 1 1.00 0.236 14 1 1.00 2.36 24 1 1.00 23.6 32 1 1.00 236 40 1
3. Create a new text file and name it “Figure 4b dataset.txt”
4. Copy the data below in the text file; save and close
Patients D mean se 0.00 0.0236 8 1.5 0.00 0.2360 14 1.5 0.00 2.36 20 1.5 0.00 23.60 24 1.5 0.00 236.00 29 1.5 1.00 0.0236 5 1.5 1.00 0.2360 10 1.5 1.00 2.36 15 1.5 1.00 23.60 20 1.5 1.00 236.00 26 1.5
5. Open RStudio and create a new R script (Ctrl + Shift + N)
6. Copy the syntax below in the R script
7. Insert the right directory of “Ghostscript” into the 7th line (see R Graphs – Preparation) – use “/” instead of “\” to seperate directory levels
8. Insert the right directory of your dataset (see step 1) into the 8th line – use “/” instead of “\” to seperate directory levels
9. Select all (Ctrl + A) and push the “Run” button
10. You should find your high resolution figure in the same directory as your dataset
Now you are ready to play around – use your own dataset or change the syntax and see what happens.
#### This syntax is written by Ronald Bierings - PhD student Ophthalmology UMCG ####
#### Questions and/or remarks are welcome (ronaldbierings@gmail.com) ####
#=======================================================================================================#
#PREPARATION PERIMETRY CENTRAAL
Sys.setenv(R_GSCMD="C:/Program Files/gs/gs9.21/bin/gswin32c.exe") #Install Ghostscript and put the right path here
setwd("H:/desktop/Figuur 4")
cdata_a <- read.table("Figure 4a database.txt",header=T)
attach(cdata_a)
names(cdata_a)
summary(cdata_a)
Patient <- factor(Patients)
library("ggplot2")
library("Rmisc")
library("plyr")
library("scales")
library("gridExtra")
library("cowplot")
cdata_a
#=======================================================================================================#
###################################### SYNTAX TO PLOT GRAPH #######################################
#### POINTS / ERRORBARS / LINES ####
p=ggplot(
cdata_a, aes(x=Luminance, y=mean, group=Patients, log="x")) + #Plot points x and y, group
geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.2, size =0.3) + #Plot errobars
geom_line(linetype = 2, size = 0.3)+ #Plot line between points
geom_point(aes(shape=factor(Patients)), size=2,fill="white") + #Groups have different shapes in graph
scale_shape_manual(values=c(16,21), labels=c("Controls", "Patients")) + #Shapes are manually set and labeled
#### AXIS ####
scale_y_continuous(limits = c(0, 50), breaks=seq(0,60,10), expand = c(0,0)) + #Axis minimum, maximum, breaks
scale_x_log10( #Log axis minimum, maximum, breaks
#limits = c(0.009,300),
breaks = scales::trans_breaks("log10", function(x) 10^x,n=5),
labels = scales::trans_format("log10", scales::math_format(10^.x))
) +
#### TITLE / UNIT and QUANTITY ####
ggtitle("") + #Title
xlab(expression("Luminance "(cd/m^2) )) + #x-axis label
ylab("CFF (Hz)") #y-axis label
#### LAY-OUT ####
fig1a =
p +
annotate("text", x = 0.01, y = 43, label = "4A", size = 3.5, hjust = 0, vjust =0, fontface =2) + #titel
annotate("text", x = 0.01, y = 43, label = " Fovea", size = 2.9, hjust = 0, vjust =0) + #titel
theme_bw() +
theme(
axis.ticks.x = element_line(colour="black", size=0.3),
axis.ticks.y = element_line(colour="black", size=0.3),
panel.border = element_rect(colour = "black", size=0.6,linetype="solid"), #Black border surrounding graph
panel.grid.major = element_blank(), #Major grid lines
panel.grid.minor = element_blank(), #Minor grid lines
axis.title.x=element_text(size=10, colour="black", vjust=3), #Lay-out x-axis title
axis.title.y=element_text(size=10, colour="black", vjust=1), #Lay-out y-axis title
axis.text.x=element_text(size=9, colour="black"), #Lay-out x-axis text
axis.text.y=element_text(size=9, colour="black"), #Lay-out y-axis text
legend.text = element_text(size = 8),
legend.position = c(0.8,0.15 ), #Legend position (x,y)
panel.background = element_rect (fill = "white"), #Background color
legend.background = element_blank(), #Legend text background color
legend.key=element_blank(), #Legend shapes background color
legend.title = element_blank (),
plot.margin = unit(c(0,0.12,0,0.1), "in") #Legend title
) +
annotation_logticks(sides = "bt", base=10, size =0.2) #Log ticks on sides
#coord_fixed(ratio=1.62/1) #Change ratio of x- and y-axis
fig1a
#=======================================================================================================#
#=======================================================================================================#
#PREPARATION PERIMETRY PERIFEER
setwd("H:/desktop/Figuur 4")
cdata_b <- read.table("Figure 4b database.txt",header=T)
attach(cdata_b)
names(cdata_b)
summary(cdata_b)
Patient <- factor(Patients)
library("ggplot2")
library("Rmisc")
library("plyr")
library("scales")
cdata_b
#=======================================================================================================#
###################################### SYNTAX TO PLOT GRAPH #######################################
#### POINTS / ERRORBARS / LINES ####
p=ggplot(
cdata_b, aes(x=Luminance, y=mean, group=Patients, log="x")) + #Plot points x and y, group
geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.2, size =0.3) + #Plot errobars
geom_line(linetype = 2, size = 0.3)+ #Plot line between points
geom_point(aes(shape=factor(Patients)), size=2,fill="white") + #Groups have different shapes in graph
scale_shape_manual(values=c(16,21), labels=c("Controls", "Patients")) + #Shapes are manually set and labeled
#### AXIS ####
scale_y_continuous(limits = c(0, 50), breaks=seq(0,60,10), expand = c(0,0)) + #Axis minimum, maximum, breaks
scale_x_log10( #Log axis minimum, maximum, breaks
#limits = c(0.009,300),
breaks = scales::trans_breaks("log10", function(x) 10^x,n=5),
labels = scales::trans_format("log10", scales::math_format(10^.x))
) +
#### TITLE / UNIT and QUANTITY ####
ggtitle("") + #Title
xlab(expression("Luminance "(cd/m^2) )) + #x-axis label
ylab("log CS") #y-axis label
#### LAY-OUT ####
fig1b =
p +
annotate("text", x = 0.01, y = 43, label = "4B", size = 3.5, hjust = 0, vjust =0, fontface =2) + #titel
annotate("text", x = 0.01, y = 43, label = " Periphery", size = 2.9, hjust = 0, vjust =0) + #titel
theme_bw() +
theme(
axis.ticks.x = element_line(colour="black", size=0.3),
axis.ticks.y = element_line(colour="black", size=0.3),
panel.border = element_rect(colour = "black", size=0.6,linetype="solid"), #Black border surrounding graph
panel.grid.major = element_blank(), #Major grid lines
panel.grid.minor = element_blank(), #Minor grid lines
axis.title.x=element_text(size=10, colour="black", vjust=3), #Lay-out x-axis title
axis.title.y=element_blank(), #Lay-out y-axis title
axis.text.x=element_text(size=9, colour="black"), #Lay-out x-axis text
axis.text.y=element_text(size=9, colour="black"), #Lay-out y-axis text
legend.text = element_text(size = 8),
legend.position = c(0.8,0.15 ), #Legend position (x,y)
panel.background = element_rect (fill = "white"), #Background color
legend.background = element_blank(), #Legend text background color
legend.key=element_blank(), #Legend shapes background color
legend.title = element_blank (), #Legend title
plot.margin = unit(c(0,0.1,0,0), "in")
) +
annotation_logticks(sides = "bt", base=10, size =0.2) #Log ticks on sides
#coord_fixed(ratio=1.62/1) #Change ratio of x- and y-axis
fig1b
#=======================================================================================================#
################################ SYNTAX TO SAVE GRAPH AS HQ TIFF ##################################
bitmap("Figure 4.tiff", width = 5.0, height = 2.72, units = 'in', type="tifflzw", res=600) #Set width, change height to make graphs squared
grid.arrange(fig1a, fig1b, ncol=2, nrow =1, widths=c(1,0.88)) #Ratio of graphs because of margins
dev.off()
par(mfrow = c(1,1))
#=======================================================================================================#