我有一些代码来绘制网格,每个单元格中的数据都是不同的,并且具有非常特定的位置。我发现这样做最简单的方法是使用gridspec创建网格并使用它来精确定位我的子图,但是我遇到的问题是整个网格沿着每个轴标记为0到1。每次都会发生这种情况,即使网格的尺寸发生变化也是如此。显然这些数字与我的数据没有关系,因为我想要显示的是定性而非定量,我想完全删除该图中的所有标签。
Here is a link to an image with an example of my problem
以下是我用来创建该图像的MWE:
import numpy as np
import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt
# mock-up of data being used
x = 6
y = 7
table = np.zeros((x, y))
# plotting
fig = plt.figure(1)
gs = gridspec.GridSpec(x, y, wspace=0, hspace=0)
plt.title('Example Plot')
for (j, k), img in np.ndenumerate(table):
ax = fig.add_subplot(gs[x - j - 1, k])
ax.set_xticklabels('')
ax.set_yticklabels('')
plt.show()
我无法找到类似这个问题的任何记录,所以任何帮助都会非常感激。
答案 0 :(得分:1)
如果您只想在绘图上绘制网格,请使用以下代码:
import numpy as np
import matplotlib.pyplot as plt
# mock-up of data being used
x = 6
y = 7
table = np.zeros((x, y))
# plotting
fig = plt.figure(1)
plt.title('Example Plot')
plt.gca().xaxis.grid(True, color='darkgrey', linestyle='-')
plt.gca().yaxis.grid(True, color='darkgrey', linestyle='-')
plt.show()
使用另一种变体gridspec:
...
# hide ticks of main axes
ax0 = plt.gca()
ax0.get_xaxis().set_ticks([])
ax0.get_yaxis().set_ticks([])
gs = gridspec.GridSpec(x, y, wspace=0, hspace=0)
plt.title('Example Plot')
for (j, k), img in np.ndenumerate(table):
ax = fig.add_subplot(gs[x - j - 1, k])
# hide ticks of gribspec axes
ax.get_xaxis().set_ticks([])
ax.get_yaxis().set_ticks([])