python matplotlib gridspec,不需要的任意轴标签

时间:2016-05-26 01:29:04

标签: python matplotlib

我有一些代码来绘制网格,每个单元格中的数据都是不同的,并且具有非常特定的位置。我发现这样做最简单的方法是使用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()

我无法找到类似这个问题的任何记录,所以任何帮助都会非常感激。

1 个答案:

答案 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([])

enter image description here