Как построить 2D-матрицу, данные которой неравномерно распределены по оси X, используя Python?

Я пытаюсь построить 2D-матрицу, используя библиотеку matplotlib (единственную, которую я знаю до сих пор). Однако функция matplotlib.pyplot.imshow(matrix) предполагает, что данные равномерно распределены по каждой оси, а данные, которые я хочу построить, — нет. Мои данные выглядят так: первый столбец матрицы - это данные в строке x = 0, данные второго столбца - в строке x = 1,27 вместо x = 1, а данные третьего столбца - в строке x = 1,42, но не x = 2 и так далее.

Кстати, данные равномерно распределены по оси Y.

Поэтому мне интересно, могу ли я как-нибудь построить это так, как я надеюсь? Спасибо за ваше время и любезную помощь заранее!

------ новичок в программировании

update: Прежде всего, спасибо всем за ваши предложения! Я пробовал методы, и вот результаты: введите описание изображения здесь

Это график, построенный contourf, который не такой, как я ожидал. pcolormesh тоже не дает идеального результата. То, что я пытаюсь построить, это данные сейсмических трасс, которые представляют собой подземную структуру. Я надеюсь построить что-то вроде этого: введите здесь описание изображения

Если есть какие-либо советы о том, как я могу это сделать, пожалуйста, дайте мне подсказку! Большое спасибо!


person Gordon Vanderbilt    schedule 02.11.2014    source источник
comment
Я думаю, что вы можете попробовать с pcolor. Он принимает два дополнительных массива для x и y.   -  person nicoguaro    schedule 02.11.2014
comment
Было бы очень полезно, если бы вы предоставили некоторые данные в качестве примера.   -  person mrcl    schedule 09.11.2014


Ответы (2)


Я бы посоветовал вам использовать функцию pcolormesh.

Вам просто нужно ввести интервалы, определенные в 1D-массивах x, y и 2D-данных соответственно. Ниже вы найдете простой пример.

from pylab import *
x = logspace(log10(1),log10(100),11)
y = linspace(1,100,21)

data = rand(20,10)
pcolormesh(x,y,data)
show()

Обратите внимание, что x и y имеют дополнительную точку. В этом случае data заполняет интервалы, определяемые x и y. В противном случае вы можете использовать функцию contourf.

Ваше здоровье

person mrcl    schedule 02.11.2014

Вам нужны заполненные контуры...

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

person ssm    schedule 02.11.2014