python - Matplotlib.plot_date 自动在我的数据系列中添加日期,为什么以及如何避免?
问题描述
我是 python/matplotlib 的新手,在进行实验时,我鼓励这种奇怪的行为,即生成的图表总是显示我的系列中不存在的那些点(日期)。我试图从文档和网络上搜索,但找不到太多线索。这是我制作图表的方式:
import pymysql
import datetime
import pandas as pd
import matplotlib.pyplot as plt
serial_no = '163406'
start_date = '2020-06-28'
mysql = pymysql.connect(host="localhost",port=3306,user="dbuser",passwd="psword",db="expdb")
cursor = mysql.cursor()
sql = "select r.t_date ,r.acc_av from expdb.records r \
where r.sn = '"+serial_no+"'and r.t_date >= '"+start_date+"' order by r.t_date ASC"
data= pd.read_sql(sql, mysql, parse_dates=['t_date'])
data = data.set_index('t_date')
plt.plot_date(fdata.index,data[['acc_av']],linestyle=':', marker='.', label='acc av')
plt.show()
数据类型的数据类型:
fund_df.info()
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 32 entries, 2020-11-30 to 2021-01-13
Data columns (total 1 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 acc_av 32 non-null float64
dtypes: float64(5)
memory usage: 1.5 KB
一些样本数据:
data.head(10)
acc_av
t_date
2020-11-30 7.0706
2020-12-01 7.2280
2020-12-02 7.2234
2020-12-03 7.2360
2020-12-04 7.2889
2020-12-07 7.2660
2020-12-08 7.2721
2020-12-09 7.1850
2020-12-10 7.1953
2020-12-11 7.1542
有几天肯定不在系列中,即2020-12-05、2020-12-06。
从它生成的图表来看,即使这些不存在日期的标记,图表上仍然存在时间范围,例如从 12-04 到 12-07 显示更长的间隔空间,例如,无论我使用 plt.plot( ) 或 plt.plot_date()。有没有办法避免 matplotlib 自动将这些不存在的日期放回图表中?
生成的图表在此处输入图像描述
不同更清晰线条/标记样式的图表(在下面的 Ankur 评论中回显) 在此处输入图像描述
解决方案
推荐阅读
- java - 当我开始一个带有过渡的活动时,我的动态创建的表怎么会出现而不是过渡
- c# - 从填充了另一个 ArrayList 的 ArrayList 中检索数据
- java - java - 如何使用java.util.Calendar在每年的同一日期设置一个重复性假期(不考虑年份部分)?
- typescript - 未验证打字稿约束
- javascript - 如何等待功能?
- python - 尝试在 Python 中交换列表中的项目
- angular - 使用循环将多条记录插入Firebase?
- ios - 使用 iPhone 或 iPad 无法在 Safari 上播放 Quicktime 视频
- php - 根据 Laravel Eloquent 中的给定值排列行
- python-3.x - ModelCheckpoint 不保存模型