首页 文章

由于日期“ValueError:视图限制最小值0.0小于1并且是无效的Matplotlib日期值,Pandas Dataframe Plotting失败 . ”

提问于
浏览
0

我有一个包含少量列的pandas数据框,我试图使用matplotlib绘制其中两个列,但下面的代码在Zeppelin上的每个备用尝试都会失败 . 不确定,我在这里缺少什么 .

type(df3pd)

class'pandas.core.frame.DataFrame'

df3pd.dtypes

grouping_column                int64
day                            object
metric_ratio                   float64
metric_ratio2             float64
dtype: object

这是我目前的绘图代码 . 这在我第一次在Zeppelin笔记本中运行时仍然失败,但如果我第二次运行它,则会成功执行 .

import pandas as pd
import matplotlib.pyplot as plt

dfnew3pd = df3pd[df3pd['grouping_column'] == 450123][['day','metric_ratio2']]

x = pd.to_datetime(dfnew3pd.day)
y = dfnew3pd.metric_ratio2

plt.style.use('ggplot')
plt.clf()
plt.plot(x,y)
plt.show()

这是每次第一次运行此绘图代码时出现的错误,但第二次消失并且绘图正确显示 .

File "/usr/local/lib64/python2.7/site-packages/matplotlib/dates.py", line 1269, in refresh
    dmin, dmax = self.viewlim_to_dt()
  File "/usr/local/lib64/python2.7/site-packages/matplotlib/dates.py", line 1026, 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 回答

  • 1

    如果你试着坚持 Series.plot 怎么办?

    v = df3pd[df3pd['grouping_column'] == 450123]
    v.set_index('day').metric_ratio2.plot()
    plt.show()
    

相关问题