【问题标题】:Matplotlib Enlarge the space between x-axis labelsMatplotlib 扩大 x 轴标签之间的空间
【发布时间】:2016-08-03 21:27:48
【问题描述】:
  1. 我想增加 x 轴上标签之间的间距,这样它们就不会并排放置。

  2. 无论如何我可以水平“拖动”绘图,就像我在 excel 中将绘图水平向右拖动时可以做的那样,整个绘图变得更大。

这是当前的屏幕截图:

我确实使用了 ax.xaxis.get_children()1.set_size(100) 之类的代码,但它不起作用。

               import matplotlib.pyplot as plt
               import numpy as np
               line = plt.figure()    
               plt.plot(x,y, 'r-',marker='o', color='b')
               plt.grid(True)
               plt.xticks(x, Quickdatres,rotation="vertical")

               ax=plt.subplot()
               ax.xaxis.get_children()[1].set_size(100)
               for label in ax.xaxis.get_ticklabels()[::2]:  
               label.set_visible(False)   

               plt.show()

Quickdatres 包含 x 轴的所有标签。谢谢!

【问题讨论】:

  • 我认为间隔是由plt.plot 函数自动设置的。它试图平衡标签之间的间隔。你能增加情节的大小吗?

标签: python python-2.7 python-3.x matplotlib plot


【解决方案1】:

您可以将标签之间的间隔从 3 增加到 5。(我必须构建假数据才能绘图)。

import matplotlib.pyplot as plt
import numpy as np


x = np.arange(402, 630)
Quickdatres = [str(_) if _%5==0 else '' for _ in x]
y = np.random.randint(500, 3000, 630-402)

line = plt.figure()    
plt.plot(x, y, 'r-', marker='o', color='b')
plt.grid(True)
plt.xticks(x, Quickdatres, rotation="vertical")

ax = plt.subplot()
ax.xaxis.get_children()[1].set_size(100)
for label in ax.xaxis.get_ticklabels()[::2]:  
    label.set_visible(False)   

plt.show()

【讨论】: