Marty999 Marty999 - 1 year ago 93
R Question

Making line plot with discrete x-axis in ggplot2

I am building a ggplot2 figure with a facet grid. On my Y-axis are percentages, and my X-axis is the concentration (in numbers). Each facet has 3 groups (0, 24 and 48 hours)

ggplot(data=MasterTable, aes(x=Concentration, y=Percentage, group=Time)) +
geom_point() +
geom_line() +
facet_grid(Chemicals ~ Treatments)


This generates a continuous x-axis. Since the values are not evenly spread out, I would prefer a discrete axis to better visualize my data. I followed the following tutorial with no luck. The first figure is exactly what I am trying to do.

I also tried formatting the axis:

scale_x_discrete(labels("0", "0.1", "2", "50"))


and formatting the line:

geom_line(aes(Time))


and following this tutorial.

I think this problem is that the values on the x-axis are integers rather than strings. This makes the default axis continuous. How can I change this?? I am sure the solution is simple, I just can't figure it out.

Thanks in advance!

Answer Source

On this page they make the following modification df2$dose<-as.factor(df2$dose). You can try to modify your x-axis as df2$Concentration<-as.factor(df2$Concentration)

or like this:

ggplot(data=MasterTable, aes(x=factor(Concentration), y=Percentage, group=Time)) + 
  geom_point() + 
  geom_line() + 
  facet_grid(Chemicals ~ Treatments) 
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download