删除轴刻度但使用 Matplotlib / ggplot 样式保留网格
Remove axis ticks but keep grid using Matplolib / ggplot style
我知道这是一个 "duplicate" 问题 (Remove the x-axis ticks while keeping the grids (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 仍然在情节之外有一些刻度。我如何摆脱它们,保留内部网格?
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()
您可以声明刻度的颜色。在这种情况下是透明的:
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)
ax.imshow(data)
ax.tick_params(axis='x', colors=(0,0,0,0))
ax.tick_params(axis='y', colors=(0,0,0,0))
plt.show()
,结果为:
我认为更简单的方法是将长度设置为零:
ax.tick_params(which='both', length=0)
我知道这是一个 "duplicate" 问题 (Remove the x-axis ticks while keeping the grids (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 仍然在情节之外有一些刻度。我如何摆脱它们,保留内部网格?
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()
您可以声明刻度的颜色。在这种情况下是透明的:
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)
ax.imshow(data)
ax.tick_params(axis='x', colors=(0,0,0,0))
ax.tick_params(axis='y', colors=(0,0,0,0))
plt.show()
,结果为:
我认为更简单的方法是将长度设置为零:
ax.tick_params(which='both', length=0)