Matplotlib中X轴刻度因np.arange步长显示异常,需改为1-300取值
问题修正方案
问题原因
你当前调用plt.plot()时只传入了Y轴数据(期权价值、内在价值),Matplotlib会默认使用数据的索引位置作为X轴刻度。由于S = np.arange(1,300,.1)生成了2990个数据点,X轴自然显示为0到2989的索引值,而非S的实际取值(1到300)。
解决方法
在绘图时明确传入X轴数据S,让Matplotlib直接用S的取值作为X轴刻度:
修改绘图部分的代码:
plt.figure(figsize=(10,6)) # 传入S作为X轴数据 plt.plot(S, calls, label='Call Value') plt.plot(S, call_intrinsic, label="Intrinsic Value") plt.xlabel('$S_0$') plt.ylabel('Value') plt.legend()
可选优化:自定义刻度显示
如果需要更精准控制X轴刻度的显示间隔,可以添加plt.xticks()指定刻度点,比如每隔50显示一个刻度:
plt.xticks(np.arange(0, 301, 50)) # 显示0、50、100...300的刻度
内容的提问来源于stack exchange,提问作者Pratyush
相关产品推荐
相关产品推荐

