Отображение данных в коробках с питоном - PullRequest
1 голос
/ 01 августа 2011

у меня есть массив

  d[0:100]

, которое определено в ячейках (или ячейках), центр которых хранится в этих двух массивах

  x[0:100]
  y[0:100]

и чей размер

  h[0:100]

Хотелось бы, чтобы я мог построить изображение, показывающее коробки / ячейки, окрашенные в соответствии со значением массива, определенного в каждом из них. Вроде бы и гистограмма но это не так. У вас есть идеи, с чего начать?

1 Ответ

2 голосов
/ 01 августа 2011

При желании нарисовать квадраты с площадью h ** 2 и цветом на основе значения в d, вы можете нарисовать прямоугольники, используя matplotlib с цветом, полученным из карты цветов (масштабируется до 0-1):

import pylab
import numpy as np
import matplotlib as mpl
import random
import matplotlib.cm as cm

my_cmap = cm.bone

def my_square_scatter(axes, x_array, y_array, size_array, color_array):
    for x, y, size, color in zip(x_array, y_array, size_array, color_array):
        square = pylab.Rectangle((x-size/2,y-size/2), size, size, facecolor = my_cmap(color))
        axes.add_patch(square)
    return True

x = np.arange(100)
y = np.arange(100)
random.shuffle(y)
h = np.arange(100)/10.0
d = np.arange(100)/100.0
random.shuffle(d)

fig = pylab.figure(1)
fig.clf()
axes = pylab.axes()
my_square_scatter(axes, x, y, h, d)
pylab.axis('scaled')

#Create your own colorbar based on the parent axes.
ax, _ = mpl.colorbar.make_axes(axes)
cbar = mpl.colorbar.ColorbarBase(ax, cmap=my_cmap, norm=mpl.colors.Normalize(vmin=0.0, vmax=1.0))
#cbar.set_clim(0.0,1.0) #Scale the colorbar; default is 0--1


pylab.show()

Пример вывода:

my_square_scatter output

Ваш массив d должен быть нормализован до 0-1. В противном случае вы должны масштабировать это в выборе цвета.

Адаптировано из Положение графика / разброса и размер маркера в одинаковых координатах .

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