python - 使用 python 在框中绘制数据

标签 python matplotlib

我有一个数组

  d[0:100]

它是在盒子(或单元格)中定义的,其中心存储在这两个数组中

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

其尺寸为

  h[0:100]

我希望我可以绘制一个图像,显示根据每个框/单元格中定义的数组值着色的框/单元格。它看起来和直方图但事实并非如此。您知道从哪里开始吗?

最佳答案

考虑到绘制面积为 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。否则,您应该在颜色选择中缩放它。

改编自Plot/scatter position and marker size in the same coordinates .

关于python - 使用 python 在框中绘制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6895935/

相关文章:

python 将文件保存到用户文件夹(Windows)

python - Office 365 授权代码请求

python - 如何使用 matplotlib-basemap 正确投影 tif 图像

python - 我可以将点的颜色列表传递给 matplotlib 的 'Axes.plot()' 吗?

python - matplotlib 图表区域 vs 绘图区域

python - 使用 BaseHTTPRequestHandler 编写响应正文

python - 如何获取为1的列的id

python - 如何使用 BeautifulSoup 从期刊版本列表中抓取 pdf 网址?

Python:单击时更改 matplotlib 按钮的标签

python - 指定刻度标签的浮点格式