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

时间:2018-11-09 01:05:16

标签: python pandas matplotlib plot

我有一个只有几列的pandas数据框,我试图使用matplotlib绘制其中两列,但是下面的代码使每次尝试Zeppelin失败。不确定,我在这里缺少什么。

type(df3pd)

'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 个答案:

答案 0 :(得分:1)

如果您尝试坚持使用Series.plot怎么办?

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