【问题标题】:ValueError: view limit minimum 0.0 is less than 1 and is an invalid Matplotlib date valueValueError: view limit minimum 0.0 is less than 1 and is a invalid Matplotlib date value
【发布时间】: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


【解决方案1】:

我自己解决了我的问题,在我的代码中注释掉这一行

plt.ion() 

正如我在问题中所说,该应用程序在开发环境(在我的笔记本电脑中)中运行,但未在 AWS 服务器上运行。 我希望,它可以帮助某人。

【讨论】:

    猜你喜欢
    • 2019-03-22
    • 2021-07-11
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    相关资源
    最近更新 更多