Я только что начал использовать python и попробовал написать небольшую программу для создания простых 2D-графиков. Я пытаюсь построить 2D-матрицу (60x60). Все работает отлично, за исключением дополнительного элемента в (x = 28, y = 60), включенных в мой сюжет.2D-график с matplotlib
У меня были некоторые проблемы с выяснением того, что могло произойти не так. К сожалению, из-за моих скромных знаний о python я действительно не нашел сколько-нибудь значимого объяснения.
код я использую
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
from subprocess import call
from math import pi
import sys
x = []
y = []
z = []
if len(sys.argv) > 1:
fname = sys.argv[1]
else:
fname = 'data.txt'
print 'reading data from {}'.format(fname)
print 'This is the correct verssion trimming the blanks'
for l in open(fname, 'r'):
try:
xx, yy, zz = map(float, l.split())
if zz > 0. :
x.append(int(xx))
y.append(int(yy))
z.append(zz)
except ValueError:
pass
plt.scatter(x, y, c=z ,s=35, marker='s',cmap=mpl.cm.spectral,linewidths=0)
plt.clim(0,max(z))
cbar=plt.colorbar()
cbar.ax.set_visible(False)
s=18
plt.xlim([min(x)-3,max(x)+3])
plt.ylim([min(y)-3,max(y)+3])
plt.axis('off')
finalname = fname + '.png'
pdfname = fname + '.png'
plt.savefig(pdfname,dpi=100,bbox_inches='tight')
Я использовал его, чтобы построить е (х, у) = х * у/(х + у). Участок у меня есть:
Обратите внимание, что у меня есть ненужный дополнительный элемент в моем участке, указанном указателем. Я манипулировал своими данными, чтобы создать разрез в верхней правой части сюжета. X, Y, Z значения, которые я использовал, можно найти здесь:
Возможно, что я делаю это не самое лучшее решение. Поэтому я был бы признателен за любые альтернативные решения.
Спасибо заранее Alex
О, да. Как это получилось ... Спасибо, это намного проще, чем я думал. И, наконец, последний вопрос заключается в том, что для каждого квадрата нужен квадратный размер. Я должен быть изменен с изменением размера матрицы, что довольно неудобно, когда его просто жестко кодируют. –