我有一个包含少量列的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 回答
如果你试着坚持
Series.plot
怎么办?