我尝试在scatter()
中绘制每天的 tradeMoney 。
所以我只写一个简单的例子:
plt.scatter(train_EDA[(train_EDA['tradeMonth'] == 1)]['tradeDay'],\
train_EDA[(train_EDA['tradeMonth'] == 1)]['tradeMoney'])
绝对正确。
因此,我尝试每月绘制以下内容:
nrows, ncols = 12, 1
fig, ax = plt.subplots(nrows=12, ncols=1, figsize=(8, 96))
for i in range(12):
ax[i].scatter(train_EDA[(train_EDA['tradeMonth'] == i)]['tradeDay'],
train_EDA[(train_EDA['tradeMonth'] == 1)]['tradeMoney'])
所有图都是空白的。
错误消息如下:
-------------------------------------------------- ----------------------------
ValueError Traceback(最近的呼叫 最后)在
3
i对于范围(12)中的4:
----> 5个ax [i] .scatter(train_EDA [(train_EDA ['tradeMonth'] == i)]
['tradeDay'],train_EDA [(train_EDA ['tradeMonth'] == 1)] ['tradeMoney'])
〜\ Anaconda3 \ lib \ site-packages \ matplotlib__init __。py在内部(ax, 数据,* args,** kwargs)
1808年“ Matplotlib list!)“%(label_namer,func。 name ),
1809
RuntimeWarning,堆栈级别= 2)
-> 1810 return func(ax,* args,** kwargs)
1811
1812内部。 doc = _add_data_doc(内部。 doc ,
〜\ Anaconda3 \ lib \ site-packages \ matplotlib \ axes_axes.py在 散点图(self,x,y,s,c,marker,cmap,norm,vmin,vmax,alpha, 线宽,verts,edgecolors,** kwargs)
4180 y = np.ma.ravel(y)
4181,如果x.size!= y.size:
-> 4182引发ValueError(“ x和y必须具有相同的大小”)
4183
4184如果s为None:
ValueError:x和y的大小必须相同
以下是数据框:
tradeMonth tradeDay tradeMoney
0 12 22 16000.0
1 11 14 14000.0
2 2 10 6000.0
3 4 16 3400.0
4 2 28 8000.0
5 3 24 3000.0
......
......
......
搜索some relevant questions后,其错误主要是由数据尺寸引起的。
但是没有这样的问题。
谁能帮我解决这个问题?
答案 0 :(得分:1)
好像您不小心将1
留在了想要i
的地方;更改
ax[i].scatter(train_EDA[(train_EDA['tradeMonth'] == i)]['tradeDay'],
train_EDA[(train_EDA['tradeMonth'] == 1)]['tradeMoney'])
到
ax[i].scatter(train_EDA[(train_EDA['tradeMonth'] == i)]['tradeDay'],
train_EDA[(train_EDA['tradeMonth'] == i)]['tradeMoney'])