【问题标题】:Plot large dataset with time随时间绘制大型数据集
【发布时间】:2019-03-13 17:58:48
【问题描述】:

我有一个包含超过 100k 条目的数据集,如下所示:

    score       time
0     19     18 days 02:55:00
1     2949   1 day 01:20:11
2     42211  5 days 00:00:00
     ....
100000 22    100 days 01:11:03

我正在尝试在 x 轴上绘制时间并在 y 轴上进行评分,如下所示:

import matplotlib
matplotlib.use('Agg')
import pandas as pd
import matplotlib.pyplot as plt

k = pd.cut(df.score, bins)
plt.plot(time, score)
plt.show()

我面临的问题是,我试图在 X 轴上按时间段按分箱绘制分数,但一张图表不适合这么多图。任何人都可以帮助我吗?

【问题讨论】:

    标签: python pandas matplotlib large-data


    【解决方案1】:

    您是否尝试过查看以下内容? Histogram in matplotlib, time on x-Axis

    如上链接所示:

    Matplotlib 使用自己的日期/时间格式,但也提供简单的转换函数,这些函数在日期模块中提供。它还提供了各种定位器和格式化器,它们负责将刻度放置在轴上并格式化相应的标签。如果您传入各自的日期/时间箱,我们可以相应地绘制出来并在 x 轴上标记。

    这应该让你开始:

    import random
    import matplotlib.pyplot as plt
    import matplotlib.dates as mdates
    
    # generate some random data (approximately over 5 years)
    data = [float(random.randint(1271517521, 1429197513)) for _ in range(1000)]
    
    # convert the epoch format to matplotlib date format 
    mpl_data = mdates.epoch2num(data)
    
    # plot it
    fig, ax = plt.subplots(1,1)
    ax.hist(mpl_data, bins=50, color='lightblue')
    ax.xaxis.set_major_locator(mdates.YearLocator())
    ax.xaxis.set_major_formatter(mdates.DateFormatter('%d.%m.%y'))
    plt.show()
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-14
      • 2017-12-11
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 2021-07-24
      相关资源
      最近更新 更多