我有一个关于2D像素图的问题,类似于: Make a 2D pixel plot with matplotlib
提供的答案有效,但我想改变y轴的方向。 我的代码如下所示:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.array([1, 1, 1, 2, 2, 2, 3, 3, 3])
y = np.array([1, 2, 3, 1, 2, 3, 1, 2, 3])
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
grid = a.reshape(3, 3)
plt.imshow(grid, extent=(x.min(), x.max(), y.min(), y.max()), interpolation='nearest', cmap=cm.jet, aspect="auto")
问题是重塑后,网格看起来像这样:
>grid
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
对于我想制作的情节,我需要一个这样的网格:
>grid
array([[3, 6, 9],
[2, 5, 8],
[1, 4, 7]])
我已经研究了重塑的选项但找不到任何有用的东西。 关于如何改变网格的任何建议?
答案 0 :(得分:1)
只需使用
grid.T[::-1]
或
a.reshape(3,3).T[::-1]
这会转换矩阵并反转行的顺序,从而为您提供正确的形状。
还可以使用imshow
origin
中完成撤消行的顺序
plt.imshow(grid.T,origin='lower', ...)