Question: Continuously add lines to ggplot with for loop
0
gravatar for camachofrancine
2.1 years ago by
United States
camachofrancine90 wrote:

Hi there,

I have an object called gPlot and I want to continuously add geom_lines to the gPlot object.

df is a dataframe 
sstart ssend
167    2637
552    8273

My following code is :

gPlot<-ggplot() + geom_line(aes(x=1:6549, y=1, colour="red")) + geom_line(aes(x=295:1218, y=.99, colour="blue")) + geom_line(aes(x=3084:4340, y=.99, colour="green"))+coord_cartesian(xlim = c(0, 6549), ylim = c(0,1)) +  xlab("coordinates") + ylab("regions")

geomLine <- NULL
for(i in 1:nrow(df)){
  rowDF<-df[i,]
  dfstart <-rowDF$sstart
  dfend<-rowDF$send
  geomLine<-gPlot+geom_line(aes(x=dfstart:dfend, y=.95, colour="black"))

}

However, when I plot the new ranges from the df, the plot does not add all the ranges but, just puts the last number range. Any help would be appreciated.

Thanks!

ggplot2 R • 3.2k views
ADD COMMENTlink modified 2.1 years ago • written 2.1 years ago by camachofrancine90
0
gravatar for camachofrancine
2.1 years ago by
United States
camachofrancine90 wrote:

I finally solved the above question after staring at the computer. Using aes_string() made it work.

for(i in 1:nrow(stool_polyketide_analysis_df_vfam)){
  rowDF<-stool_polyketide_analysis_df_vfam[i,]
  dfstart <-rowDF$sstart
  dfend<-rowDF$send
  gPlot<-gPlot+geom_line(aes_string(x=dfstart:dfend, y=.95-.005*i))

}
ADD COMMENTlink modified 17 months ago • written 2.1 years ago by camachofrancine90
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 1210 users visited in the last hour