1. Create a new text file and name it “Figure 1 dataset.txt”
2. Copy the data below in the text file; save and close
Patients D mean se 0.00 0.013 -0.10 0.15 0.00 0.130 0.40 0.15 0.00 1.300 0.9 0.15 0.00 13.000 1.1 0.15 0.00 130.000 1.1 0.15 1.00 0.130 0.00 0.15 1.00 1.300 0.50 0.15 1.00 13.000 0.70 0.15 1.00 130.000 0.7 0.15
3. Open RStudio and create a new R script (Ctrl + Shift + N)
4. Copy the syntax below in the R script
5. Insert the right directory of “Ghostscript” into the 7th line (see R Graphs – Preparation) – use “/” instead of “\” to seperate directory levels
6. Insert the right directory of your dataset (see step 1) into the 8th line – use “/” instead of “\” to seperate directory levels
7. Select all (Ctrl + A) and push the “Run” button
8. 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) ####
#=======================================================================================================#
#### LOADING AND PREPARATION OF YOUR DATA ####
Sys.setenv(R_GSCMD="C:/Program Files/gs/gs9.21/bin/gswin32c.exe") #Install Ghostscript and put the right path here (NB: "/" and not"\")
setwd("H:/desktop") #Sets directory file (NB: "/" and not"\")
data <- read.table("Figure 1 dataset.txt",header=T) #Loads dataset
attach(data) #Makes dataset active
names(data) #Shows names of variables
summary(data) #Gives summary of dataset
data #Gives whole dataset
Patients <- factor(Patients) #Categorical variable (standard: quantitative)
library("ggplot2") #Loads package
library("Rmisc") #Loads package
library("plyr") #Loads package
library("scales") #Loads package
library("gridExtra") #Loads package
library("cowplot") #Loads package
#=======================================================================================================#
###################################### SYNTAX TO PLOT GRAPH #######################################
#### POINTS / ERRORBARS / LINES ####
p=ggplot(
data, aes(x=D, y=mean, group=Patients)) + #Points x and y, group
geom_errorbar(aes(ymin=mean-se, ymax=mean+se), width=.2) + #Errorbars
geom_line(linetype = 2, size = 1)+ #Line between points
geom_point(aes(shape=factor(Patients)), size=6,fill="white") + #Groups have different shapes
scale_shape_manual(values=c(16,21), labels=c("Controls", "Patients")) + #Shapes manually set and labeled
#### AXIS ####
scale_y_continuous(limits = c(-0.5, 1.6), breaks=seq(-1,2,0.5)) + #Y-axis, limits, breaks/labels
scale_x_log10( #X-axis (log)
breaks = scales::trans_breaks("log10", function(x) 10^x,n=5), #Breaks x-axis
labels = scales::trans_format("log10", scales::math_format(10^.x)) #Labels x-axis
) +
#### R TITLE / UNIT and QUANTITY ####
ggtitle("") + #No title above graph
xlab(expression("Luminance "(cd/m^2) )) + #x-axis label
ylab("log CS") #y-axis label
#### LAY-OUT ####
fig1=
p +
annotate("text", x = 0.01, y = 1.5, label = "Figure 1", size = 8, hjust=0, fontface=2) + #Title within graph (bold)
annotate("text", x = 0.01, y = 1.5, label = " Psychophysical laws", size = 8, hjust=0) + #Title within graph
theme_bw() +
theme(
panel.border = element_rect(colour = "black", size = 1), #Black border surrounding graph
panel.grid.major = element_line(colour = "gray95", size=1), #Major grid lines
panel.grid.minor = element_blank(), #Minor grid lines
axis.title.x=element_text(size=25, colour="black", vjust=-0.5), #Lay-out x-axis title
axis.title.y=element_text(size=27, colour="black"), #Lay-out y-axis title
axis.text.x=element_text(size=23, colour="black"), #Lay-out x-axis text
axis.text.y=element_text(size=23, colour="black"), #Lay-out y-axis text
axis.ticks.x = element_line(colour="black", size=0.5), #Lay-out x-axis ticks
axis.ticks.y = element_line(colour="black", size=0.5), #Lay-out y-axis ticks
legend.position = c(0.8,0.135 ), #Legend position (x,y)
legend.text = element_text(size = 20), #Legend background
panel.background = element_rect (fill = "white"), #Background color of graph
legend.background = element_blank(), #No background color legend
legend.key=element_blank(), #No background color legend
legend.key.size = unit(2, 'lines'), #Some space between legend keys
legend.title = element_blank (), #No legend title
plot.margin = unit(c(0,0.2,0.1,0.1), "in") #Margins (top, right, bottom, left)
) +
annotation_logticks(sides = "bt", base=10, size =1) #Log ticks on sides
fig1 #show the figure you just created.
#=======================================================================================================#
################################ SYNTAX TO SAVE GRAPH AS HQ TIFF ##################################
bitmap("Figure 1.tiff", width = 7.5, height = 7.5, units = 'in', type="tifflzw", res=600) #Set width and change height to make graphs squared
grid.arrange(fig1, nrow =1, ncol=1, widths=c(1)) #Creats a grid (more applicable if you want more graphs)
dev.off()
par(mfrow = c(1,1))
####Look in the directory of your database and find Figure 1.tiff ####
#=======================================================================================================#