我有一个数组
d[0:100]
在框(或单元格)中定义,其中心存储在这两个数组中
x[0:100]
y[0:100]
,其大小为
h[0:100]
我希望我可以根据每个中定义的数组值绘制显示盒子/单元格的图像。它似乎和直方图,但它不是。你知道从哪里开始吗?
答案 0 :(得分:2)
鉴于希望绘制面积为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()
示例输出:
你的d数组应归一化为0-1。否则,您应该在颜色选择中缩放它。
改编自Plot/scatter position and marker size in the same coordinates。