matplotlib直方图问题 - 图表中的xticks和多余空间

时间:2015-06-04 05:20:26

标签: python matplotlib histogram font-size

我有几个问题在Matplotlib中绘制子图:

  1. 我无法将x轴刻度标签显示在我的前2个图表上。在下面的代码中,我没有指定子图分享x轴或任何东西。 我也用plt.setp(ax.get_xticklabels(), visible=True)尝试了这个,但它并没有改变x轴标签的缺失。

    plt.subplot2grid((6,4), [0,0], 2, 2)
    ax = firstperiod.megaball.plot(kind='hist', bins = 25)
    plt.setp(ax.get_xticklabels(), visible=True) 
    plt.xticks(range(0,26,5), range(0,26,5), rotation="horizontal")
    plt.title('Megaball Distrib \'96 - \'99')
    plt.ylabel("# of draws", fontsize = 10)
    
  2. 我注意到如果我只绘制左上方的直方图,x轴刻度实际显示,但一旦我绘制更多就会消失。

    enter image description here

    我也试过调整tight_layout,plt.tight_layout(w_pad = 2, h_pad = 2),但这并不能帮助我显示我的x轴刻度值。

    1. subplot似乎在右侧的某些图表中留下了额外的空间。如何摆脱那个空间并使用整个x轴作为直方图?
    2. 以下是整个事情的样子。

      enter image description here

      为什么有些x轴刻度会自动显示,有些则没有?为什么我的图表有这么多额外空间?当我制作条形图而不是直方图时,这不是问题......(请注意,我已尝试在hspace调整wspacesubplot_adjust )。

      fig = plt.figure()
      fig.suptitle('Distribution of MegaBall Draws', fontsize=20)
      
      plt.subplot2grid((6,4), [0,0], 2, 2)
      ax = firstperiod.megaball.plot(kind='hist', bins = 25)
      plt.setp(ax.get_xticklabels(), visible=True) 
      plt.xticks(range(0,26,5), range(0,26,5), rotation="horizontal")
      plt.title('Megaball Distrib \'96 - \'99')
      plt.ylabel("# of draws", fontsize = 10)
      
      plt.subplot2grid((6,4), [0,2], 2, 2)
      secondperiod.megaball.plot(kind='hist', bins = 36)
      plt.xticks(range(0,36,5), range(0,41,5), rotation="horizontal")
      plt.title('Megaball Distrib \'99 - \'02')
      plt.ylabel("# of draws", fontsize = 10)
      
      plt.subplot2grid((6,4), [2,0], 2, 2)
      thirdperiod.megaball.plot(kind='hist', bins = 52)
      plt.xticks(range(0,55,5), range(0,55,5), rotation="horizontal")
      plt.title('Megaball Distrib \'02 - \'05')
      plt.ylabel("# of draws", fontsize = 10)
      
      plt.subplot2grid((6,4), [2,2], 2, 2)
      fourthperiod.megaball.plot(kind='hist', bins = 46)
      plt.xticks(range(0,50,5), range(0,50,5),rotation="horizontal")
      plt.title('Megaball Distrib \'05 - \'13')
      plt.ylabel("# of draws", fontsize = 10)
      
      plt.subplot2grid((6,4), [4,1], 2, 2)
      fifthperiod.megaball.plot(kind='hist', bins = 15)
      plt.xticks(rotation="horizontal")
      plt.title('Megaball Distrib \'13 - ')
      plt.ylabel("# of draws", fontsize = 10)
      
      plt.tight_layout(w_pad = 2, h_pad = 2)
      plt.subplots_adjust(top = 0.8, wspace = 0.75, hspace = 2.5)
      plt.savefig("megaball_distribs.png")
      plt.show()
      

1 个答案:

答案 0 :(得分:-2)

您可以使用奇怪的website.com -> /var/www/website.com/www/ www.website.com -> /var/www/website.com/www/ subdomain.website.com -> /var/www/subdomain.website.com/www/ 参数调整字体大小。

fontsize