Возможно, это не совсем то, что вы искали, но мне удалось построить участок с отрицательными и положительными значениями.Приведенный ниже код работает на Python 3.7 / Windows 10 / Spyder IDE:
import matplotlib.pyplot as plt
x_axis = [1,2,3,4,5,6,7,8,9,10]
cheap = [-5,-4,-6,-8,-4,-2,-4,-8,-7,-3]
expensive = [3,4,8,7,9,6,4,3,2,3]
fig_size = plt.rcParams["figure.figsize"] #set chart size (longer than taller)
fig_size[0] = 39
fig_size[1] = 10
plt.rcParams["figure.figsize"] = fig_size
plt.rcParams.update({'font.size': 18})
plt.stackplot(x_axis, expensive, colors=['r'])
plt.stackplot(x_axis, cheap, colors=['g'])
plt.plot([],[],color='r', label='Above great case', linewidth=5)
plt.plot([],[],color='g', label='Below low case', linewidth=5)
plt.legend()
plt.xlabel('Years')
plt.ylabel('Number of companies')
plt.title('Under/over valuation over time')
plt.show()
Диаграмма, которую вы должны увидеть:
Эта процедура фактически использовалась дляпостроить диаграмму с тысячами точек данных оси X.Я попробовал перед гистограммой, и это заняло намного больше времени, чем эта версия области.Ниже приведен пример реального графика: