【问题标题】:Remove axis ticks but keep grid using Matplolib / ggplot style删除轴刻度,但使用 Matplotlib / ggplot 样式保留网格
【发布时间】:2016-07-28 22:10:39
【问题描述】:

我知道这是一个“重复”问题 (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([])

Wich 删除所有刻度和网格:

最后,如果试试这个:

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

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

【问题讨论】:

    标签: python matplotlib plot label axis-labels


    【解决方案1】:

    您可以为刻度声明颜色。在这种情况下是透明的:

    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()
    

    ,结果为:

    【讨论】:

      【解决方案2】:
      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()
      

      【讨论】:

        【解决方案3】:

        我认为更简单的方法是将长度设置为零:

        ax.tick_params(which='both', length=0)
        

        【讨论】:

          猜你喜欢
          • 2013-12-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-02
          • 2023-02-05
          • 1970-01-01
          • 2017-12-17
          相关资源
          最近更新 更多