【发布时间】:2014-09-10 02:41:15
【问题描述】:
我目前正在一个绘图中显示数据组合。 我用以下代码绘制它们:
plt.figure()
# Data 1
data = plt.cm.binary(data1)
data[..., 3] = 1.0 * (data1 > 0.0)
fig = plt.imshow(data, interpolation='nearest', cmap='binary', vmin=0, vmax=1, extent=(-4, 4, -4, 4))
# Plotting just the nonzero values of data2
x = numpy.linspace(-4, 4, 11)
y = numpy.linspace(-4, 4, 11)
data2_x = numpy.nonzero(data2)[0]
data2_y = numpy.nonzero(data2)[1]
pts = plt.scatter(x[data2_x], y[data2_y], marker='s', c=data2[data2_x, data2_y])
这给了我这个情节:
从图片中可以看出,我的背景和前景方块没有对齐。
两者都具有相同的尺寸 (20 x 20)。如果可能的话,我希望有一种方法可以将中心与中心对齐,或者将角与角对齐,但要进行某种对齐。
在某些网格单元格中,我似乎有右下角对齐,在其他的左下角对齐中,而在另一些中则根本没有对齐,这会降低可视化效果。
任何帮助将不胜感激。
谢谢。
【问题讨论】:
-
你想要
extentkwarg onimshow -
我也不相信该代码会生成该数字。
-
首先,让你的背景与你的数据颜色相同是一个糟糕的想法,我将它作为一个统一的背景在你的数据中 - 顶部的白色网格线。如果你说的是真的,灰色是坐标轴补丁颜色,那么你正在使用一些带有 alpha 的精美颜色图。其次,默认情况下
imshow的范围应为 0-> 图像大小。你在 -
是的,这里很难取悦别人。以前,我总是发布我的完整代码,我只是听到人们说“简化它......”,就像他们根本不想阅读一样。当我们试图简化时,人们也会抱怨。很难。
-
你没有简化你的代码,你只是发布了与你的身材无关的代码。如果您要简化代码,请发布该代码的输出图像。
标签: python matplotlib alignment scatter-plot imshow