我已经编写了这段代码
fig, (axis1, axis2,axis3, axis4)=plt.subplots(2,2,figsize=(10,4))
,但遇到了这个错误
ValueError: not enough values to unpack (expected 4, got 2)
我尝试了很多方法来消除这个错误,但一切都是徒劳的。你能向我解释为什么我会收到这个错误吗?
ValueError:没有足够的值来解包(预期 4,得到 2)
数据挖掘
熊猫
数据科学模型
matplotlib
2021-10-10 00:56:43
2个回答
这是因为您还没有查看plt.subplot函数中的值是如何打包的。
>>> plt.subplots(2,2,figsize=(10,4))
(<matplotlib.figure.Figure at 0xa3918d0>, array([[<matplotlib.axes._subplots.AxesSubplot object at 0x000000000A389470>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000A41AD30>],
[<matplotlib.axes._subplots.AxesSubplot object at 0x000000000A6F7EB8>,
<matplotlib.axes._subplots.AxesSubplot object at 0x000000000BC232E8>]], dtype=object))
与其一次性解包所有值,不如分步解包。那时你会得到一个更好的主意。
对于您的解决方案,打开包装 -
>>> fig, [[axis1, axis2],[axis3, axis4]] = plt.subplots(2,2,figsize=(10,4))
第二个返回值将是一个 2x2 数组。试试这个。
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2,2,figsize=(10,4))
其它你可能感兴趣的问题