python-3.x - 在 matplotlib 中绘制日期时间,产生多种颜色
问题描述
我是 python 新手,试图在 matlibplot 中绘制日期时间数据,但得到一个奇怪的结果 - 我只能绘制点,它们是无数不同的颜色。我正在使用plot_date()
.
我尝试生成一个可行的示例,但问题不会出现在那里(见下文)。因此,这里是给出问题的数据库示例。
import pandas as pd
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
#get a sense of what the data looks like:
data.head()
out:
date variable value unit
0 2020-04-17 10:30:02.309433 Temperature 20.799999 C
2 2020-04-17 10:45:12.089008 Temperature 20.799999 C
4 2020-04-17 11:00:07.033692 Temperature 20.799999 C
6 2020-04-17 11:15:04.457991 Temperature 20.799999 C
8 2020-04-17 11:30:04.996910 Temperature 20.799999 C
data.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 99 entries, 0 to 196
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 date 99 non-null object
1 variable 99 non-null object
2 value 98 non-null float64
3 unit 99 non-null object
dtypes: float64(1), object(3)
memory usage: 3.9+ KB
#convert date variable to datetime
data['date'] = pd.to_datetime(data['date'])
#plot with plot_date, calling date2num on date variable
plt.plot_date([mdates.date2num(data['date'])], [data['value']])
为什么我得到所有这些有色点?当我构建一个包含三个时间段的小型数据集时,我看不到这种行为。相反,我得到三个蓝点:
#create dataframe
df = pd.DataFrame({'time': ['2020-04-17 10:30:02.309433', '2020-04-17 10:30:02.309455', '2020-04-17 10:45:12.089008'],
'value': [20.799999, 41.099998, 47.599998]})
#change time variable to datetime object
df['time'] = pd.to_datetime(df['time'])
#plot
plt.plot_date(mdates.date2num(df['time']), df['value'])
如预期的那样给出三个蓝点:
最后,如何使用plot_date()
. 我看到的唯一方法是使用:datetime.datime.now()
日期格式和调用pyplot.plot()
- 请参阅此处的第二个答案:Plotting time in Python with Matplotlib
解决方案
plt.plot_date([mdates.date2num(data['date'])], [data['value']])
和之间的区别在于plt.plot_date(mdates.date2num(df['time']), df['value'])
您有一组额外的方括号。
至于线,添加fmt='-'
选项plot_date
推荐阅读
- ios - IOS库-检索图像中对象的区域
- javascript - Leaflet.js:将地图缩放到可见标记
- javascript - 使用聚合从 Mongo 数据库中获取最新保存
- ios - 轻按推送通知时 userNotificationCenter 未运行
- ios - UIView 没有像预期的那样模糊
- html - 在 div 中制作 100% 宽度的固定/粘性标题
- spring-boot - 当我想保存值时如何使用@manytoone 在带有角度的弹簧启动中为空
- neo4j - Py2neo (Neo4j) 批量插入/创建关系
- java - 使用 Ant 构建 Java Web 项目时出现 Azure Pipeline 错误
- java - 按降序嵌套for循环 - Java