Как IndexError: индекс кортежа вне диапазона может появиться на одном компьютере, но не на другом? - PullRequest
0 голосов
/ 09 февраля 2020

Я хочу сравнить data_x с data_y.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mplcol

data_x = [np.random.rand(1,), np.random.rand(1,)]
data_y = [np.random.rand(9,), np.random.rand(11,)]
data_z = [np.random.rand(9,), np.random.rand(11,)]

cm = plt.cm.get_cmap('viridis')

fig, ax = plt.subplots()
for x, y, z in zip(data_x, data_y, data_z):
    for y2, z2 in zip(y, z):
        sc = ax.scatter(x, y2, c=z2, cmap=cm, norm=mplcol.Normalize(vmin=0, vmax=1))
cb = plt.colorbar(sc)
plt.show()

Когда я запускаю его на моем компьютере с Python 3.7 IndexError: tuple index out of range появляется, но когда я запускаю его на другом компьютере с Python 3.6.6 он выполняется без ошибок.

Может кто-нибудь объяснить мне, почему? Как я могу заставить его работать на моем компьютере?

1 Ответ

0 голосов
/ 09 февраля 2020

Входные параметры от y и c до scatter должны быть повторяемыми, пока вы вводите числа с плавающей запятой.

sc = ax.scatter(x, [y2], c=[z2], cmap=cm, norm=mplcol.Normalize(vmin=0, vmax=1))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...