Условное окрашивание в Matplotlib с использованием Numpy's, где - PullRequest
0 голосов
/ 26 июня 2019

То, чего я хочу добиться, - это условно раскрасить мой график рассеяния.Я следовал за этим постом , но я получаю TypeError: len() of unsized object.Я делаю следующее

for i in range(n_cells):
   col = np.where(cell_list[i].m_n == 1, 'g', 'k')
   plt.scatter(cell_list[i].x, cell_list[i].y, c = col, alpha = 0.5, s = 2)

cell_list - это массив cell s, который является определяемым пользователем объектом.Я проверил и убедился, что col - это массив g и k правильного размера.Более того, если вы измените, например, c = col на c = 'b', график будет работать правильно.Я относительно новичок в Python, поэтому я не могу найти, в чем проблема.

1 Ответ

0 голосов
/ 26 июня 2019

Поскольку np.where всегда возвращает пустой объект, использование str (col) работает для следующего сценария.

import matplotlib.pyplot as plt
import numpy as np

col = np.where(0 == 1, 'g', 'k')
plt.scatter([0, 1], [0, 1], c = str(col), alpha = 0.5, s = 2)

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