How to visualize numerical data with upper and lower bounds? I have a dataset, containing some trees and the estimated upper and lower bounds of their ages. For example, tree #1 is 10~15 years old, and tree #2 is 13~20 years old, etc. I want to visualize the data.
I know that I can calculate the mean values of the bounds and plot a histogram. However, the plot would be more useful if the upper and lower bounds are also presented, since it shows the uncertainty of our estimations. How should I do that? Or is this even possible or reasonable?
My original thought is that the x-axis should be the ages and the y-axis should be the number of trees, which is the same as the histogram, but I'm not whether using these axes are possible or practical.
The followings are some samples from the dataset (unrelated columns are omitted):




Tree ID
Estimated ages (year) (lower bound)
Estimated ages (year) (upper bound)




1
10
15


2
13
20


3
1
3


4
7
16


5
13
15


6
12
18




Following @Nick Cox's answer (and comments - EDIT), some examples in R:
tree <- data.frame(c(1,2,3,4,5,6), c(10,13,1,7,13,12), c(15,20,3,16,15,18))

names(tree)[1]<-"TreeID"
names(tree)[2]<-"Lower"
names(tree)[3]<-"Upper"

tree <- cbind(tree, (tree$Lower + tree$Upper)/2)
names(tree)[4]<-"Avg"
tree <- cbind(tree[order(tree$Avg),], 1:6)
names(tree)[5]<-"Order"

library(ggplot2)

ggplot(tree, aes(x=Order, y=Avg)) +
  geom_pointrange(aes(ymin=Lower, ymax=Upper), color="#07bbc1") +
  labs(x="Order", y = "Age in years")


ggplot(tree, aes(x=Order, y=Lower)) +
  geom_segment(aes(xend = Order, yend = Upper), color="#07bbc1") +
  geom_point(color="#07bbc1") +
  geom_point(aes(y = Upper), color="#07bbc1")+
  labs(x="Order", y = "Age in years")



