What is the best way to visualize range of data?
I believe boxplot or violin plot is a good idea and you could overlay datapoints with a bit of jitter to the former. See below an example in seaborn taken from a relevant question:
import seaborn as sns
import matplotlib.pyplot as plt

tips = sns.load_dataset(&quot;tips&quot;)

sns.violinplot(x=&quot;day&quot;, y=&quot;total_bill&quot;, data=tips, color=&quot;0.8&quot;)
sns.stripplot(x=&quot;day&quot;, y=&quot;total_bill&quot;, data=tips, jitter=True, zorder=1)
plt.show()