Basically, you want to do an "interplolation". You can use scipy.interpolate.interp1d
:
from scipy.interpolate import interp1d
import matplotlib.pyplot as plt
#I assume your data is in a pandas Series named ser
inter = interp1d([ser.min(), ser.max()], [1,10])
y = range(1,5)
plt.barh(y, inter(ser))
plt.yticks(y)
plt.show()
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…