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

如何解决Python绘图时出现unsupported operand type(s) for -: 'int' and 'tuple'错误

报错原因
  • 自定义函数k中用到了numpy的算术运算规则,你传入的a、b是Python原生元组类型,numpy不支持整数和原生元组直接做减法运算,这是触发报错的核心原因
  • 原有代码中x轴序列长度为365,而a、b仅包含5组参数,运算得到的erosion长度也为5,二者维度不匹配,即便解决类型问题也无法完成绘图
可直接运行的修正代码

如果你需要用当前给出的5组参数计算并绘图,修正后代码如下:

import numpy as np
import matplotlib.pyplot as plt

def k(Tg, P):
    return np.exp(((15-Tg)/P)-28795/4177.3)

# 将原生元组转为numpy数组,支持向量化运算
a = np.array([-100,-10,100,78,51])
b = np.array([0.0236, 0.0237, 0.0229, 0.00807, 0.0045])

erosion = k(a, b)
# 调整x轴长度和运算结果匹配
x = np.arange(len(erosion))
plt.plot(x, erosion)
plt.show()

如果你需要生成365天对应的连续函数图像,需要先将参数Tg(即变量a)、P(即变量b)生成为长度为365的序列,再代入函数计算即可。

内容的提问来源于stack exchange,提问作者G Dennis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:39:04