python - 如何用两种颜色绘制imshow?

标签 python python-3.x numpy matplotlib imshow

这是我的代码的简单版本

m=10
n=40
z=np.random.uniform(0,1,(m,n))
plt.imshow(z,cmap='Greys')  
plt.colorbar()
<小时/>

这是输出

enter image description here

<小时/>

这就是我想做的

我希望每隔一列为红色,其他列为蓝色,我该怎么做?

我已经尝试过这个,但它给出了一个错误

for i in range(n):  
if (np.mod(i,2)==1):  
   plt.imshow(z[:,i],cmap='Blues')  
else :  
    plt.imshow(z[:,i],cmap='Reds')
ERROR: Invalid shape (10,) for image data

最佳答案

m=10
n=40
z=np.random.random(size=(m,n))
z1 = np.full(z.shape, np.nan)
z2 = np.full(z.shape, np.nan)
z1[:,::2] = z[:,::2]
z2[:,1::2] = z[:,1::2]
plt.imshow(z1,cmap='Reds')
plt.imshow(z2,cmap='Blues')

enter image description here

关于python - 如何用两种颜色绘制imshow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59874617/

相关文章:

Python Bokeh : How to update a Toggle button - defined in the main - in a subroutine

python - Python 中的上下文变量

Python 等效于 Matlab 文本扫描

python - 更改 map 表达式中的功能的建议

python - 从曲线形状中获取均匀分布的点

python - 在 python 中改变字符串

python - 使用不带链式索引的 ILOC

python-3.x - 为 Pybluez 安装 GATTlib?

python - Django注释,将多个相关值组合到同一个实例上

python - Fortran 有序(列优先)numpy 结构化数组可能吗?