a <- c(rep(1/9, 80), rep(1/7, 7), rep(1/5, 7), rep(1/3, 6))
library(ggplot2)
gg <- data.frame(a)
ggplot(gg)+
geom_histogram(aes(x=factor(a)),fill="lightgreen")+
scale_x_discrete(labels=c("1/9","1/7","1/5","1/3"))+
labs(x="a")

EDIT (Response to OP's comment)
I have a sinking feeling this is what you want:
df<- data.frame(table(a)) # calculate frequencies
df$xmax <- as.numeric(as.character((df$a)))
df$xmin <- c(1/10,df[-nrow(df),]$xmax)
library(ggplot2)
ggplot(df)+
geom_rect(aes(xmin=xmin, xmax=xmax, ymin=0, ymax=Freq),fill="lightgreen", colour="grey50")+
scale_x_continuous(breaks=c(1/10,df$xmax),labels=c("1/10","1/9","1/7","1/5","1/3"))

Sorry to have to say it, but this is a truly horrible way to display the data. The eye is naturally drawn to the area, rather than the height, so the frequencies are grossly distorted when you do it this way.