ValueError: x и y должны быть одинакового размера при рисовании ax [i] .scatter в plt.subplots () - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь построить tradeMoney каждого дня в scatter().
Поэтому я просто пишу простую, как поток:

plt.scatter(train_EDA[(train_EDA['tradeMonth'] == 1)]['tradeDay'],\
            train_EDA[(train_EDA['tradeMonth'] == 1)]['tradeMoney'])

enter image description here

Это определенно верно.
Поэтому я стараюсь каждый месяц строить графики следующим образом:

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
4 для я в диапазоне (12):
----> 5 топоров [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 "Матплотлиб 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, маркер, cmap, норма, vmin, vmax, альфа, ширина линий, вершины, края, ** кварги)
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
......
......
......

После поиска некоторых соответствующих вопросов его ошибка в основном вызвана размерами данных.
НО такой проблемы нет.
Может ли кто-нибудь помочь мне, как решить это?

1 Ответ

1 голос
/ 23 мая 2019

Похоже, вы случайно оставили 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'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...