ValueError: минимальный предел просмотра 0.0 меньше 1 и является недопустимым значением даты Matplotlib - PullRequest
0 голосов
/ 02 ноября 2018

Мне дали скрипт на python, где используется matplotlib, при запуске скрипта он открывает окно и отображает график. он отлично работает на моем ноутбуке. Но эта ошибка возникает, когда я загружаю файл на AWSasticbeanstalk. Я успешно воспроизвожу эту ошибку на своем ноутбуке, используя

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) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000)XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (200.000000,110.000000) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (59.111111,106.555556) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (225.000000,88.000000) XAxis (122.930556,106.555556) XAxis (122.930556,106.555556) XAxis (122.930556,106.555556) XAxis (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

1 Ответ

0 голосов
/ 07 ноября 2018

Я решил свою проблему самостоятельно, закомментировав эту строку в моем коде

plt.ion() 

Как я уже сказал в своем вопросе, приложение работало в среде разработки (на моем ноутбуке), но не работало на сервере AWS. Надеюсь, это может кому-то помочь.

...