防止xticks在图中重叠表

时间:2017-02-24 14:01:36

标签: python matplotlib

如何防止日期刻度与图表下方的表格重叠?我的代码简化如下:

import matplotlib.pyplot as plt
import numpy as np
import datetime
import pandas as pd

date_list = [datetime.datetime.today() + datetime.timedelta(days=x) for x in range(0, 10)]

df = pd.DataFrame({'date_':date_list,
      'y_line':np.random.randint(0,10,(1,10))[0],
      'y1': [str(x) for x in np.random.randint(0,10,(1,10))[0]],
      'y2':[str(x) for x in np.random.randint(0,10,(1,10))[0]]})

plt.plot(df.date_, df.y_line)
plt.table(cellText = [df.y1, df.y2], rowLabels = ['y1', 'y2'])
plt.xticks(rotation=90)
plt.show()

产生这个: enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用

在轴和刻度标签之间添加一些填充
plt.tick_params(axis='x', pad=20)

然后,您可以使用plt.tight_layout()或类似plt.subplots_adjust(bottom=0.25, top=0.95)之类的内容来确保刻度标签仍适合画布。