Я хочу построить сетку, где каждый узел в сетке нарисован точкой, с определенным цветовым кодом (взятым из вектора, хранящегося в узле).Поиск правильного размера маркера для графика рассеяния
сетка здесь изменяется в размере в зависимости от размера симуляции я бегу. Мне еще предстоит выяснить взаимосвязь между размером холста и размером маркера. Теперь я использую следующую формулу:
markersize = (figsize*figsize*dpi*dpi)/(xdim*ydim)
plt.scatter(X, Y, s=markersize/3, marker='s', c=Z, cmap=cm.rainbow)
plt.show()
, которое я квадратуры sigsize и точек на дюйм (использование 15 и 80 соответственно), и разделить размерностью сетки. Наконец, я разделил это на 3, поскольку нашел, что это работает.
Но я не смог определить, как аналитически получить правильный размер маркера. То, что я хочу, это сетка, в которой каждый квадрат использует столько пространства, сколько может, но без «infringinig» в пространстве других узлов, так что маркеры перекрываются.
Насколько я могу прочесть, фигура дана в дюймах. dpi - точки на дюйм, а маркеры - в точках. Если точки совпадают с точками, тогда вы должны будете иметь dpi фиксировать количество точек на каждой оси. Xdim ydim - количество узлов в моей сетке. Разделение pow (dpi figsize, 2)/xdim ydim затем должен указывать количество точек на узел и правильный размер для каждого маркера, который я думал. Но это сделало маркеры слишком большими. Я нырнул на 3, и это вроде как работало практически для размеров, которые я обычно запускаю, но не для всех. (Я угадываю точку, а точка не то же самое, но каково отношение?)
Как я правильно сформулировал ответ? В идеале я хотел бы получить очень гранулированную картинку, где я мог бы увеличить определенные области, чтобы получить более тонкий взгляд на цветные нюансы.
Хорошо, если у вас есть изотропные данные, где fig_size_x = fig_size_y вы можете сделать это: 'marker_size = fig_x * fig_dpi/xdim. ax.scatter (x, y, z, marker = 's', c = areaImg [x, y, z], s = marker_size, zdir = 'z', cmap = plt.cm.rainbow) '. Затем, чтобы получить четкую структуру, вы можете играть с [интерполяцией] (http://matplotlib.org/examples/images_contours_and_fields/interpolation_methods.html) – bazilevs31