当前位置:   article > 正文

matplotlib 横坐标只显示整数_关于matplotlib子图只显示最下边子图的xticks问题

mp.gcf().autofmt_xdate()

最近在用matplotlib画图时遇到了画子图,上边子图不显示xticks的问题,如下图:

dde4a9a3d12792b9ffebd457ccf48289.png

代码:

  1. # matplotlib -- version 3.2.2
  2. import numpy as np
  3. import matplotlib.pyplot as mp
  4. names = ["AAA", "BBB", "CCC", "DDD", "EEE", "FFF"]
  5. data1 = np.array([2, 4, 6, 8, 10, 12])
  6. data2 = np.array([2, 6, 5, 3, 7, 6])
  7. xs = np.arange(len(names))
  8. mp.figure("Test subplot", facecolor="lightgray")
  9. mp.subplot(211)
  10. mp.bar(xs, data1, color="dodgerblue", label="Data1")
  11. mp.xticks(xs, names)
  12. mp.gcf().autofmt_xdate()
  13. mp.legend()
  14. mp.subplot(212)
  15. mp.bar(xs, data2, color="orangered", label="Data2")
  16. mp.xticks(xs, names)
  17. mp.gcf().autofmt_xdate()
  18. mp.legend()
  19. mp.show()

最终,找到的问题的原因在于xticks使用了自动旋转一定角度: mp.gcf().autofmt_xdate()

将其注释掉即可,附上修改后的代码和图片:

802d70484a91659bcbeb2144ed6e7df9.png
  1. # matplotlib -- version 3.2.2
  2. import numpy as np
  3. import matplotlib.pyplot as mp
  4. names = ["AAA", "BBB", "CCC", "DDD", "EEE", "FFF"]
  5. data1 = np.array([2, 4, 6, 8, 10, 12])
  6. data2 = np.array([2, 6, 5, 3, 7, 6])
  7. xs = np.arange(len(names))
  8. mp.figure("Test subplot", facecolor="lightgray")
  9. mp.subplot(211)
  10. mp.bar(xs, data1, color="dodgerblue", label="Data1")
  11. mp.xticks(xs, names)
  12. # mp.gcf().autofmt_xdate()
  13. mp.legend()
  14. mp.subplot(212)
  15. mp.bar(xs, data2, color="orangered", label="Data2")
  16. mp.xticks(xs, names)
  17. # mp.gcf().autofmt_xdate()
  18. mp.legend()
  19. mp.show()

如果还是想着将xticks的显示旋转一定角度,可使用 mp.xticks(xs, names, rotation=30) 替换 mp.gcf().autofmt_xdate() 即可,其中rotation的代表旋转的角度,大小可自行调整。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号