回答问题

我知道这是一个“重复”问题(删除 x 轴刻度,同时保留网格(matplotlib))但我找到的答案并没有解决我的问题。

例如,我有这个代码:

%matplotlib inline

from matplotlib import pyplot as plt
from matplotlib.lines import Line2D

import bumpy

data = numpy.random.randint(0, 100, size=(100,100))

plt.style.use('ggplot')
plt.figure(figsize=(10,10))
plt.imshow(data)

plt.savefig('myplot.pdf', format='pdf', bbox_inches='tight')
plt.close()

这产生了这个情节:

在此处输入图像描述

但是,我想得到一个没有任何刻度的图,只有网格。然后,我尝试了这个:

plt.figure(figsize=(10,10))
plt.imshow(data)
plt.grid(True)
plt.xticks([])
plt.yticks([])

删除所有刻度和网格:

在此处输入图像描述

最后,如果试试这个:

plt.figure(figsize=(10,10))
plt.imshow(data)
ax = plt.gca()
ax.grid(True)
ax.set_xticklabels([])
ax.set_yticklabels([])

我离得更近了,但我的 .pdf 在情节之外仍然有一些记号。我如何摆脱它们,保持内部网格?

在此处输入图像描述

Answers

from matplotlib import pyplot as plt 
import numpy

data = numpy.random.randint(0, 100, size=(100,100))

plt.style.use('ggplot') 
fig = plt.figure(figsize=(10,10)) 
ax = fig.add_subplot(111) 
plt.imshow(data) 
ax.grid(True) 
for axi in (ax.xaxis, ax.yaxis):
    for tic in axi.get_major_ticks():
        tic.tick1On = tic.tick2On = False
        tic.label1On = tic.label2On = False

plt.show() 
plt.savefig('noticks.pdf', format='pdf', bbox_inches='tight') 
plt.close()
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐