Создайте пустой pcolorme sh в matplotlib - PullRequest
0 голосов
/ 04 августа 2020

Я могу создать пустой график с помощью

self.line, = self.axes.plot([],[], color="orange")

, но когда я пытаюсь сделать то же самое с pcolorme sh

self.line2, = self.axes2.pcolormesh([],[],[])

, я получаю ValueError: not enough values to unpack (expected 2, got 1)

Есть ли способ создать объект pcolorme sh с пустыми значениями? Я хотел бы добавить к данным в pcolorme sh в других функциях.

1 Ответ

1 голос
/ 04 августа 2020

plot возвращает список кривых (как список элементов Line2D ). Это так, чтобы быть последовательным, когда рисуется несколько кривых. Например, ax.plot(x1, y1, 'r-', x2, y2, 'b-') вернет список из двух кривых. Следовательно, запятая необходима для распаковки списка (из одного элемента), чтобы получить кривую ax.plot.

pcolormesh может нарисовать только один me sh (как QuadMe sh), поэтому он возвращает его, не упаковывая в список. Отдельный элемент нельзя распаковать, поэтому использовать запятую нельзя. Кроме того, pcolormesh требует, чтобы параметр C= был списком 2D (или массивом numpy). pcolormesh принимает два способа предоставления списков. Либо как pcolormesh(X, Y, C), либо прямо как pcolormesh(C). Чтобы различать guish между двумя форматами, необходимо проверить типы и размерность этих параметров, а пустые списки могут вызвать путаницу. Чтобы получить пустой pcolormesh, нужно пропустить X и Y и предоставить C в виде 2D-списка:

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