2013-12-05 4 views
-2

Я пытаюсь сделать график, как на этой картинке:контура участка с помощью Python

Example Image

Я пытаюсь с помощью таблицы с 3-мя колоннами. Я знаю, что это возможно, если использовать такие программы, как «происхождение», например. Я делал такие вещи, но Pythong красит швы, чтобы быть лучше.

Я не знаю, в чем проблема, но я предполагаю, что я не импортирую файл правильно. (таблица является файлом .txt) Table example

Может ли кто-нибудь помочь?

Таблица пример (реальная таблица имеет более чем 10000 строк):

+2

Вы используете внешние библиотеки, такие как matplotlib? – mrKelley

+1

Пожалуйста, отредактируйте вопрос с кодом, который у вас есть до сих пор, а также пример вашей таблицы. – thegrinner

+0

Я использую matplotlib, и то, что я пытаюсь сделать (я думаю), это что-то вроде этого примера http://matplotlib.org/examples/pylab_examples/hexbin_demo2.html, но я могу добавить свои данные на любой пример там, у меня есть попробовал несколько разных вещей, но ничего не швы на работу. Я добавил пример своего стола, надеюсь, что вы можете помочь Спасибо за помощь – Mac

ответ

0

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

from numpy import * 
from matplotlib.pyplot import * 

Nx = 3 
Ny = 3 

# This is just creating some sample data 
xx, yy = meshgrid(range(Nx), range(Ny)) 
zz = xx + yy 
data = vstack([c.flatten() for c in [xx, yy, zz]]).T 

# This is reversing the above operation to get x y and z suitable for pcolor 
x, y, z = [data[:, i].reshape(Nx, Ny) for i in range(3)] 

# Now you can plot 
pcolor(x, y, z) 
colorbar() 
+0

Я пытаюсь сделать что-то вроде этого ниже, потому что у меня есть txt-файл, как я могу импортировать его в вашу модель, он швы работать очень хорошо, кстати, спасибо. 'импорта NumPy, как нп импорта matplotlib.pyplot как PLT импорта scipy.interpolate Dados = np.loadtxt (r'file.txt ') х = [Dados [:, 0]] у = [Dados [: 1]] п = [Dados [:, 2]] х = np.asarray (х) у = np.asarray (у) г = np.asarray (п) печати «х = »х печати "у =", у печати "г =", г рис = plt.figure() CF = контур (х, у, г, раскрашивающих = 'к' ) plt.show() plt.xlabel ("X") plt.ylabel ("Y") plt.colorbar() ' – Mac

+0

Вы бы просто' данные = np.loadtxt (r'file.txt ') ', и тогда вам нужно будет определить' Nx' и 'Ny', зная, как были взяты данные. Ваш вызов 'contour' не будет выполнен, так как он ожидает двумерный' z'. Подумайте о добавлении кода в этот комментарий к исходному вопросу - он позволит вам правильно отформатировать его. – chthonicdaemon

Смежные вопросы