使用宽右边距的Matplotlib - Python

时间:2016-02-26 16:35:57

标签: python layout matplotlib plot margin

我正在绘制包含大量信息的数据,我想使用整个图块区域。但是,即使使用tight_layout,我最终也会得到一个广泛的"右边距。例如:

import matplotlib
import matplotlib.pyplot as plt

cmap = plt.get_cmap('Set3')
colors = [cmap(i) for i in numpy.linspace(0, 1, 18)]

data = numpy.random.rand(18, 365)

y = range(365)
plt.figure(figsize=(15,7))
for i in range(18):
    plt.plot(y, data[i, :], color=colors[i], linewidth=2)
plt.xticks(numpy.arange(0, 365, 10))
plt.tight_layout()

产生类似的东西:

enter image description here

我想知道如何摆脱这个正确的边距,因此使用的xtikcs可以扩展。

2 个答案:

答案 0 :(得分:1)

您可以通过设置xlim来缩小右边距。在您的代码中,在设置plt.xlim(0, 364)后添加xticks。您可以根据提供的两个值确定沿x轴绘制的任何部分。使用实际数据时,最好使用min的{​​{1}}和max值。在您提供此示例的示例中:x array

答案 1 :(得分:0)

您可以通过以下方式完成此操作:

import matplotlib
import matplotlib.pyplot as plt
import numpy as np

cmap = plt.get_cmap('Set3')
colors = [cmap(i) for i in np.linspace(0, 1, 18)]

data = np.random.rand(18, 365)

y = range(365)
fig, ax = plt.subplots(figsize=(15,7))
for i in range(18):
    ax.plot(y, data[i, :], color=colors[i], linewidth=2)
ax.set_xticks(np.arange(0, 365, 10))
ax.set_xlim(ax.xaxis.get_data_interval())
fig.tight_layout()

稍微有点pythonic。