敏感性分析时,已知当投资增加 20%时,内部收益从 47.9%下降到43.6%。下降 4.3%,投资回收期从 4.6 年增加到 4.8 年。如果单位售价降低 10%,则整个寿命期的净现值出现负值。如售价提高 10%,内部收益率提高 90%以上,回收期也大大缩短.产量下降 20%时,内部收益率下降到 30.6%。你可以用python根据提供的数据画出敏感性分析折线图吗
时间: 2024-02-12 19:05:29 浏览: 113
可以的,以下是一个可能的 Python 代码示例:
```python
import matplotlib.pyplot as plt
# 原始数据
invest_increase = 0.2
irr_decrease = 0.043
payback_increase = 0.2
npv_negative = 0.1
irr_increase = 0.9
payback_decrease = 1.0/6
output_decrease = 0.2
# x轴数据:各个参数变化的幅度
x = ['Investment', 'Unit price', 'Output']
dx = [invest_increase, -npv_negative, -output_decrease]
# y轴数据:敏感性分析结果
y_irr = [irr_decrease * dx[0], irr_increase * dx[1], -0.306 * dx[2]]
y_payback = [payback_increase * dx[0], -payback_decrease * dx[1], None]
y_npv = [None, None, None]
if dx[1] > 0:
y_npv[1] = -1
if dx[1] < 0:
y_npv[1] = 1
# 绘制折线图
plt.plot(x, y_irr, '-o', label='IRR')
plt.plot(x, y_payback, '-o', label='Payback')
plt.plot(x, y_npv, '-o', label='NPV')
plt.legend()
plt.title('Sensitivity Analysis')
plt.xlabel('Parameter')
plt.ylabel('Change in %')
plt.show()
```
说明:
- 原始数据是根据题目给出的变化幅度计算得到的。
- `x` 列表是各个参数的名称,`dx` 列表是它们的变化幅度。
- `y_irr`、`y_payback` 和 `y_npv` 列表分别是敏感性分析结果的变化幅度,未知的值用 `None` 表示。其中,`y_irr` 和 `y_payback` 是可以计算得到的,`y_npv` 则需要根据题目的条件判断。
- `plt.plot()` 函数用于绘制折线图。`-o` 表示用实心圆点标记数据点。`label` 参数是图例的标签。
- `plt.legend()` 函数用于显示图例。
- `plt.title()`、`plt.xlabel()` 和 `plt.ylabel()` 函数分别用于设置图表的标题、横轴和纵轴的标签。
- `plt.show()` 函数用于显示图表。
阅读全文