gpt4 book ai didi

python - 使用 Matplotlib Python 绘图时跳过丢失的时间戳

转载 作者:太空宇宙 更新时间:2023-11-04 01:46:03 27 4
gpt4 key购买 nike

我有一个实验数据集,该数据集每秒记录 10 个读数,即每分钟 600 个读数。数据是 1 个月的,但缺少一些日期,我假设那些日子的读数已关闭。当我使用 matplotlib 绘制此读数与时间的图表时,会绘制一条线连接上一个可用日期和下一个可用日期。

enter image description here

但是,我希望显示一个间隙而不是这条线,以便查看者清楚那些日子的数据不可用。

我正在使用 Matplotlib 和 Python 3 绘图。

这是数据的样子

timestamp,x
2019-09-03 18:33:38,17.546
2019-09-03 18:33:38,17.546
2019-09-03 18:33:39,17.546
2019-09-03 18:33:39,17.555999999999997
2019-09-03 18:33:39,17.589000000000002
2019-09-03 18:33:39,17.589000000000002
2019-09-03 18:33:39,17.589000000000002
2019-09-03 18:33:39,17.589000000000002
2019-09-03 18:33:39,17.593
2019-09-03 18:33:39,17.595
2019-09-03 18:33:40,17.594

最佳答案

基于@Diziet Asahi 的回答的另一个选项是绘制成散点图而不是直线。这应该适用于单个 x 值的多个数据点。由于您的数据经过大量采样,因此无论如何它都可能具有与线条类似的视觉效果。

import matplotlib.pylab as plt
%matplotlib inline
import pandas as pd

# first bit of code copied from @Diziet's answer
df = pd.concat([pd.DataFrame([10]*600, index=pd.date_range(start='2018-01-01 00:00:00', periods=600, freq='0.1S')),
pd.DataFrame([20]*600, index=pd.date_range(start='2018-01-01 00:01:10', periods=600, freq='0.1S'))])

df2 = df.resample('0.1S').asfreq()

# plot three times, twice using different settings using the original data,
# once using resampled data
fig, (ax1, ax2, ax3) = plt.subplots(1,3, figsize=(8,4))
df.plot(ax=ax1)
df.plot(ax=ax2, marker='.', linestyle='')
df2.plot(ax=ax3)

enter image description here

关于python - 使用 Matplotlib Python 绘图时跳过丢失的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59072819/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com