解决方案 ValueError: view limit minimum XXX is less than 1 and is an invalid Matplotlib date value.

invalid Matplotlib 是无效的时间格式

数据实例

import matplotlib.pyplot as plt #绘图包
import pandas as pd #表格包
date = pd.read_csv("date.csv",encoding = 'gbk') #打开文件 读取数据
date #在jupyter lab中可以直接显示

结果:
在这里插入图片描述

两种方法将时间序列变成索引

第一种方法 (转换后的时间序列为时间类型)
#index_col=0 将索引值为第一列,parse_dates=[0]并将第一列转换为时间序列
date = pd.read_csv('data_stock3.csv',index_col=0,parse_dates=[0],encoding='gbk') #把时间序列作为索引
print(date.index) #查看索引值,并查看索引类型
date #显示数据

结果:
在这里插入图片描述

#绘图  绘图可以显示  不会报错
plt.figure(figsize=(8,4),dpi=600) #对绘图进行大小与分辨率进行设置
plt.plot(date['price']) #绘图 传入数据
plt.show() #显示

结果:
在这里插入图片描述

第二种方法(转换后的时间索引为object类型的 可能会出现绘图问题)
date = pd.read_csv('data_stock3.csv',encoding='gbk') #读取文件数据
date.index = date.datetime #将date的index为数据列的datetime
date_new = date.loc["1960-01-01":"1961-04-01",['price','back']] #"1960-01-01"到"1961-04-01"的数据行,price与back数据列组合成新的表
print(date_new.index) #其中index的数据类型为object
date_new

结果

在这里插入图片描述

#绘图
plt.figure(figsize=(8,4),dpi=600) #对绘图进行大小与分辨率进行设置
plt.plot(date_new['price'],'dodgerblue',date_new['back'],'limegreen') #绘图 传入数据
plt.show() #显示

结果可能出错:如
在这里插入图片描述

解决方法 一

#对索引重新生成index 时间序列 periods为生成的条数  将索引列变成时间格式  freq为每条时间的间隔
date_new.index = pd.date_range('1960/7/1',periods=6,freq='3MS') 
print(date_new.index) #打印索引的时间序列
date_new #打印表格

结果:
在这里插入图片描述

解决方法 二

#直接对时间序列进行转换
date_new.index = pd.to_datetime(date_new.index) #直接使用pandas包中的转换函数转换
print("方法二",date_new.index)
date_new

结果
在这里插入图片描述

这样绘图就没有问题了

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值