【发布时间】:2018-11-02 10:38:08
【问题描述】:
我已经获得了使用 matplotlib 的 python 脚本,当运行该脚本时,它会打开窗口并显示图形。 它在我的笔记本电脑上完美运行。但是当我在 AWS elasticbeanstalk 上上传文件时会发生此错误。 我通过使用成功地在我的笔记本电脑中重现了这个错误
import matplotlib
matplotlib.use('agg')
引发的错误
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/dates.py", line 1001, in viewlim_to_dt
.format(vmin))
这是该文件中的代码
def viewlim_to_dt(self):
"""
Converts the view interval to datetime objects.
"""
print(self.axis)
vmin, vmax = self.axis.get_view_interval()
if vmin > vmax:
vmin, vmax = vmax, vmin
if vmin < 1:
raise ValueError('view limit minimum {} is less than 1 and '
'is an invalid Matplotlib date value. This '
'often happens if you pass a non-datetime '
'value to an axis that has datetime units'
.format(vmin))
return num2date(vmin, self.tz), num2date(vmax, self.tz)
print(self.axis) 显示这个然后引发错误
XAxis(100.000000,373.620690)
当我删除行 matplotlib.use('agg') 时, print(self.axis) 显示
XAxis(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(200.000000,110.000000) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(59.111111,106.555556) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(225.000000,88.000000) X轴(122.930556,106.555556) X轴(122.930556,106.555556) X轴(122.930556,106.555556) X轴(122.930556,106.555556)
谁能帮帮我,我不知道发生了什么事。 我正在使用python3 这是我的完整导入
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib
matplotlib.use('agg')
import matplotlib.pyplot as plt
import datetime
from matplotlib.dates import DateFormatter
from matplotlib.dates import HourLocator
这是完整的错误跟踪
File "/Users/abc/project/pythonfile.py", line 301, in plot_now
facecolor='tab:purple', interpolate=True, alpha = 0.3, label='my_label')
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/__init__.py", line 1785, in inner
return func(ax, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axes/_axes.py", line 5021, in fill_between
self._process_unit_info(xdata=x, ydata=y1, kwargs=kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 2111, in _process_unit_info
kwargs = _process_single_axis(xdata, self.xaxis, 'xunits', kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 2094, in _process_single_axis
axis.update_units(data)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axis.py", line 1478, in update_units
self._update_axisinfo()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axis.py", line 1496, in _update_axisinfo
self.set_major_locator(info.majloc)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axis.py", line 1617, in set_major_locator
self.stale = True
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 236, in stale
self.stale_callback(self, val)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 63, in _stale_axes_callback
self.axes.stale = val
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 236, in stale
self.stale_callback(self, val)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/figure.py", line 57, in _stale_figure_callback
self.figure.stale = val
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 236, in stale
self.stale_callback(self, val)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/pyplot.py", line 568, in _auto_draw_if_interactive
fig.canvas.draw_idle()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/backend_bases.py", line 1899, in draw_idle
self.draw(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/backends/backend_agg.py", line 402, in draw
self.figure.draw(self.renderer)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 50, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/figure.py", line 1652, in draw
renderer, self, artists, self.suppressComposite)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 50, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 2604, in draw
mimage._draw_list_compositing_images(renderer, self, artists)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/image.py", line 138, in _draw_list_compositing_images
a.draw(renderer)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/artist.py", line 50, in draw_wrapper
return draw(artist, renderer, *args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axis.py", line 1185, in draw
ticks_to_draw = self._update_ticks(renderer)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axis.py", line 1023, in _update_ticks
tick_tups = list(self.iter_ticks()) # iter_ticks calls the locator
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/axis.py", line 967, in iter_ticks
majorLocs = self.major.locator()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/dates.py", line 1230, in __call__
self.refresh()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/dates.py", line 1250, in refresh
dmin, dmax = self.viewlim_to_dt()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/matplotlib/dates.py", line 1001, in viewlim_to_dt
.format(vmin))
ValueError: view limit minimum 0.0 is less than 1 and is an invalid Matplotlib date value. This often happens if you pass a non-datetime value to an axis that has datetime units
【问题讨论】:
-
你必须阅读回溯到最后,最后一行是:"ValueError: view limit minimum 0.0 is less than 1 and is a invalid Matplotlib日期值。如果您将非日期时间值传递给具有日期时间单位的轴,通常会发生这种情况"。尝试分析脚本中第 300 行附近发生的情况。
标签: python numpy matplotlib data-science