python 洛伦兹曲线
时间: 2023-11-01 20:56:57 浏览: 214
洛伦兹曲线是一种反映经济收入分配不均的图表。在 Python 中,可以使用 Matplotlib 库绘制洛伦兹曲线。以下是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成随机收入数据
n = 1000
income = np.random.normal(5000, 2000, n)
# 计算累计收入和累计人口比例
income = np.sort(income)
cum_income = np.cumsum(income)
cum_pop = np.arange(1, n+1) / n
# 计算洛伦兹曲线上的点
L_x = np.append([0], cum_pop)
L_y = np.append([0], cum_income / cum_income[-1])
# 绘制洛伦兹曲线和对角线
fig, ax = plt.subplots()
ax.plot(L_x, L_y, label='Lorenz curve')
ax.plot([0, 1], [0, 1], color='gray', linestyle='--', label='Equality')
ax.set_xlabel('Cumulative population')
ax.set_ylabel('Cumulative income')
ax.set_title('Lorenz curve')
ax.legend()
plt.show()
```
该代码生成 1000 个随机收入数据,计算累计收入和累计人口比例,并使用 Matplotlib 绘制洛伦兹曲线和对角线。结果类似于以下图表:
![Lorenz curve](https://i.imgur.com/lW0tYb2.png)
阅读全文