【发布时间】:2020-04-27 08:18:10
【问题描述】:
我有一条正态分布曲线和两条直线,有 2 个不同的 y 值,我只需要填充三者之间的区域。我一直在查看 fill_between 和多边形,但都无法为我工作。
#Probability plot
final_prices.sort()
price_mean = np.mean(final_prices)
price_standard = np.std(final_prices)
normalized_df = stats.norm.pdf(final_prices, price_mean, price_standard)
ax2.tick_params(direction='in', length=6, width=2, colors=color_tick, right=True, labelright='on')
ax2.plot(normalized_df, final_prices, color=color_line)
ax2.set_xlim([min(normalized_df), max(normalized_df)])
ax2.set_ylim([min(final_prices), max(final_prices)])
ax2.invert_xaxis()
#mean line
probability_frame = pd.DataFrame(final_prices, normalized_df)
mean_price = probability_frame.loc[max(normalized_df), :].iloc[0]
# ax2.axhline(y = mean_value, color=color_midline, linestyle='--')
#standard deviation lines
sigma = statistics.pstdev(final_prices)
sigma_up_one = mean_price + sigma
sigma_down_one = mean_price - sigma
ax2.axhline(y=(sigma_up_one), color=color_sigma, linestyle='-')
ax2.axhline(y=(sigma_down_one), color=color_sigma, linestyle='-')
ax2.axhline(y=(sigma_up_one + sigma), color=color_sigma2, linestyle='-')
ax2.axhline(y=(sigma_down_one - sigma), color=color_sigma2, linestyle='-')
ax2.set_xlabel('Probability')
ax2.set_ylabel('Price')
ax2.set_title('Price Probability Distribution ' + ticker, color=color_label)
ax2.xaxis.label.set_color(color_label)
ax2.yaxis.label.set_color(color_label)
plt.tight_layout()
plt.show()
这是我当前的输出。
我需要填充最内层线之间的区域,这些线代表与平均值的第一个标准偏差,但只能填充到曲线线。提前谢谢你。
【问题讨论】:
标签: python matplotlib