Python 强制颜色贴图为正方形
我正在使用Python 强制颜色贴图为正方形,python,matplotlib,colormap,Python,Matplotlib,Colormap,我正在使用matplotlib库处理Python,但我在颜色映射维度方面遇到了问题 我有一个目标变量target,它取决于两个变量x和y——也就是说,我的数据target是一个矩阵,变量x是行,变量y是列。我想在关于x和y的彩色地图中表示target。问题是x的值比y的值多,因此如果我绘制一个颜色贴图,我会得到一个矩形-一个相当难看的矩形,因为x的值比y的值多得多 我宁愿在颜色贴图和正方形贴图中使用矩形“像素”,而不是正方形“像素”,而是矩形颜色贴图-或者至少我想比较这两种可视化效果 我的问题是
matplotlib
库处理Python,但我在颜色映射维度方面遇到了问题
我有一个目标变量target
,它取决于两个变量x
和y
——也就是说,我的数据target
是一个矩阵,变量x
是行,变量y
是列。我想在关于x
和y
的彩色地图中表示target
。问题是x
的值比y
的值多,因此如果我绘制一个颜色贴图,我会得到一个矩形-一个相当难看的矩形,因为x
的值比y
的值多得多
我宁愿在颜色贴图和正方形贴图中使用矩形“像素”,而不是正方形“像素”,而是矩形颜色贴图-或者至少我想比较这两种可视化效果
我的问题是:如何强制颜色贴图为正方形
这是我的当前代码-cmap
变量只允许我定义自定义色阶:
import matplotlib.pyplot as plt
import matplotlib.pyplot as clr
target = ...
cmap = clr.LinearSegmentedColormap.from_list('custom blue',
['#DCE6F1','#244162'],
N=128)
plt.matshow(target, cmap=cmap)
plt.colorbar(cmap='custom blue')
你的
matplotlib
版本是什么?
如果它比1.1.0
更新,则可以尝试以下操作:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.imshow(np.random.rand(32, 64), cmap='rainbow', aspect=2)
plt.show()
这将为您提供具有方形图形形状的矩形像素。
您应该用数据替换
np.random.rand(32,64)
,并定义您喜欢的纵横比。另外,请参考此。您可能会对其他解决方案感兴趣 安德烈亚斯的答案在我的电脑上有效。您可能会看到与代码稍有不同的结果,因为imshow()默认情况下会对图像进行插值,因此与matshow()相比,图片会有所不同。但是方面
参数对这两个方面都有效。因此,要么将其馈送到matshow(),要么在imshow()中禁用插值:
fig = plt.figure()
ax = fig.add_subplot(111)
ax.matshow(np.random.rand(32, 64), cmap='rainbow', aspect=2)
plt.show()
fig = plt.figure()
ax = fig.add_subplot(111)
ax.imshow(np.random.rand(32, 64), cmap='rainbow', aspect=2, interpolation="None")
plt.show()