You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python绘制经济学预算线:如何反转直线斜率(保持坐标轴不变)

预算线斜率反转的解决方案

不用折腾坐标轴翻转或者数组反转,直接重新计算预算线的端点就行——这才是经济学上斜率反转的本质(相当于调整两种商品的价格比例,或者互换X/Y的约束逻辑)。

两种实现方式

方式1:直接指定目标端点

如果你明确要预算线从y轴的60(坐标(0,60))延伸到x轴的15(坐标(15,0)),直接用两点式生成直线:

import numpy as np
import matplotlib.pyplot as plt

# 生成x轴取值范围(从0到15)
x = np.linspace(0, 15, 100)
# 两点式推导直线方程:斜率=(0-60)/(15-0)=-4,y=60-4x
y = 60 - 4 * x

# 绘图(保持坐标轴范围不变)
plt.plot(x, y, color='blue', label='反转斜率后的预算线')
plt.xlabel('商品X数量')
plt.ylabel('商品Y数量')
plt.xlim(0, 20)  # 按需调整x轴范围,和你原来的图一致即可
plt.ylim(0, 70)  # 按需调整y轴范围,和你原来的图一致即可
plt.legend()
plt.show()

方式2:基于原收入/价格调整

如果你的预算线是基于收入I、商品X价格Px、商品Y价格Py计算的,反转斜率本质是互换X和Y的价格(或者说把两种商品的约束逻辑互换):

import numpy as np
import matplotlib.pyplot as plt

# 原参数示例(替换成你自己的数值)
I = 120  # 收入
Px = 2   # 商品X价格
Py = 8   # 商品Y价格

# 原预算线(供对比)
x_old = np.linspace(0, I/Px, 100)
y_old = (I - Px * x_old) / Py
plt.plot(x_old, y_old, color='gray', linestyle='--', label='原预算线')

# 反转斜率后的预算线:互换Px和Py的角色
x_new = np.linspace(0, I/Py, 100)
y_new = (I - Py * x_new) / Px
plt.plot(x_new, y_new, color='blue', label='反转后预算线')

plt.xlabel('商品X数量')
plt.ylabel('商品Y数量')
plt.legend()
plt.show()

关键说明

  • numpy.flip()只会翻转数组的元素顺序,不会改变直线的斜率逻辑;
  • invert_xaxis()是翻转坐标轴方向,不符合你要保持坐标轴不变的需求;
  • 真正的斜率反转是改变预算线的约束方程,通过重新计算端点就能实现,完全不用动坐标轴。

内容的提问来源于stack exchange,提问作者Nathaniel C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 10:06:12