here is an example of using ggplot2:
# top panel ggplot(mydf, aes(position, factor(group), size = barheight)) + geom_point() + opts(legend.position = "none")

UPDATE
here is an example with a horizontal bar:
# arbitral bar length bar <- data.frame(y = c(1, 1, 2, 2), x = c(0, 10, 1, 9)) ggplot() + geom_line(aes(x, factor(y), group = factor(y)), bar, size = 2, colour = "skyblue") + geom_rect(aes(y = factor(group), xmin = position - 0.1, xmax = position + 0.1, ymin = group - barheight/2, ymax = group + barheight/2), mydf) # bar length is from data range ggplot(mydf) + geom_line(aes(position, factor(group), group = factor(group)), size = 2, colour = "skyblue") + geom_rect(aes(y = factor(group), xmin = position - 0.1, xmax = position + 0.1, ymin = group - barheight/2, ymax = group + barheight/2))

UPDATED AGAIN
I should have used geom_tile :
ggplot(mydf, aes(position, factor(group), group = factor(group))) + geom_line(size = 2, colour = "skyblue") + geom_tile(aes(height = barheight))
UPDATED AGAIN
ggplot(mydf, aes(position, factor(group), group = factor(group))) + geom_line(size = 2, colour = "skyblue") + geom_tile(aes(height = barheight)) + geom_point(aes(x, y, group = NULL), data.frame(x = c(5, 5), y = c(1, 2)), size = 5, colour = "cyan")