我遇到的问题是我在无头的virt机器上运行诊断脚本。在代码中,我生成一组与单个对象(包含目标数据)相关的图。当没有可用的显示导致错误时,调用ax.plot_date(x_vals, y_vals)
会导致子图调用tcl进行显示(参见下面的错误)。
我想使用相同的代码,但不生成要显示的图,最后保存fig.savefig(filepath)
。任何和所有的帮助将不胜感激!
我甚至愿意采用更有效的方法,所以请随意提供。
import matplotlib.pyplot as plt
from matplotlib.dates import drange
from datetime import timedelta
# Code...
# Setup
delta = timedelta(minutes=1)
dates = drange(requested_start, requested_end, delta)
for obj in obj_set:
# Create Plot
fig, ax = plt.subplots()
fig.suptitle('Title', fontsize=10)
plt.xlabel('Time', fontsize=10)
ax.set_xlim(dates[0], dates[-1])
ax.fmt_xdata = DateFormatter('%Y-%m-%d %H:%M:%S')
ax.plot_date(dates, obj.data_set) #Here is command that I would like assistance
fig.autofmt_xdate()
# Setup file information local storage
file_name = '%s.png' % (self.name)
file_path = os.path.join(outdir, 'plots', file_name)
fig.savefig(file_path)
plt.close(fig)
TclError: no display name and no $DISPLAY environment variable