Теперь я не уверен, что вы пробовали / не пробовали, однако самый простой способ сделать это - просто создать средний столбец (чтобы избежать нечисловых c значений, если вы хотите создать диапазон) для вашего диапазон, а затем сопоставьте его со своими продажами. Следующее должно сделать это:
import pandas as pd
#data
d = {'ageFrom': [0, 11, 21, 31], 'ageTo': [10, 20, 30, 40], 'sales':[2, 10, 15, 20]}
#create dataframe
df = pd.DataFrame(data = d)
#create a mean value for your range
df['mean'] = (df['ageFrom'] + df['ageTo'])/2
#plot data
ax1 = df.plot.scatter(x='mean',y='sales')
ИЛИ: вы все равно можете создать столбец диапазона и построить его как столбчатая диаграмма, как показано ниже:
#create a range column
df['range'] = df['ageFrom'].astype(str) + '-' + df['ageTo'].astype(str)
#plot bar
ax2 = df.plot.bar(x='range', y='sales', rot=0)
Наконец, вы все равно можете использовать не числовые c для оси x используя matplotlib, как показано ниже:
import matplotlib.pyplot as plt
plt.scatter(df.range,df['sales'],c='b',label='range')