Контурный участок в квадратных точках - PullRequest
1 голос
/ 06 марта 2012

У меня есть 3 набора данных, X, Y, Z, которые являются моими осями и моими данными соответственно. Они четко определены, т.е. len (X) = len (Y) = len (Z) = len (Z [i]) = N для i в диапазоне (0, N).

Я хотел бы сделать аналогичный контурному графику (я его уже сделал), но используя дискретные оси , как "контурные квадраты", где каждый квадрат (x, y) имеет цвет определяется значением Z (которое является значением с плавающей точкой).

Пока что я использую контур (X, Y, Z), но он делает некоторые интерполяции, которые мне не нужны, мне нужна лучшая визуализация с квадратами.

Кто-нибудь знает, как это сделать?

Спасибо

1 Ответ

5 голосов
/ 06 марта 2012

Вы должны использовать matshow или imshow функции построения графиков.

Важным аргументом здесь является интерполяция . Посмотрите этот пример из галереи matplotlib , чтобы увидеть некоторые примеры.

При использовании matshow () аргументы ключевых слов передаются в imshow () . matshow () устанавливает значения по умолчанию для origin , интерполяция ( = 'ближайший' ) и аспект .

вот пример из моей собственной работы ...

# level, time and conc are previously read from a file

X,Y=[level,time]   
Z=conc.transpose() # Create the data to be plotted

cax = matshow(Z, origin='lower', vmin=0, vmax=500)
    # I am telling all the Z values above 500 will have the same color
    # in the plot (if vmin or vmax are not given, they are taken from
    # the input’s minimum and maximum value respectively)
grid(True)
cbar = colorbar(cax)

... который возвращает этот участок:

perfil vertical

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