【问题标题】:How can I loop through a list of elements and create time series plots in Python如何遍历元素列表并在 Python 中创建时间序列图
【发布时间】:2020-03-05 10:09:14
【问题描述】:

这是我正在使用的数据示例WellAnalyticalData 我想遍历每个井名并为每个参数创建一个时间序列图,其中 x 轴上的样本日期和值y 轴。我不认为我想要子图,我只是在寻找每口井的每种分析物的单独图。我已经使用 pandas 尝试按井名分组,然后尝试进行绘图,但这似乎不是要走的路。我对 python 还很陌生,我想我也很难弄清楚如何构造循环语句​​。我正在运行 python 3.x 并使用 matplotlib 库来生成绘图。

【问题讨论】:

  • 请不要将代码、错误信息或数据样本添加为图片。

标签: python python-3.x matplotlib time-series


【解决方案1】:

因此,如果我正确理解您的问题,您需要为 Well 和 Parameter 的每种组合绘制一个图。没有子图,只是每个组合的新图。每个图应该在 x 轴上有 SampleDate,在 y 轴上有 Value。我在这里编写了一个循环来执行此操作,尽管您会看到由于在您的数据中每个参数每个孔只有一个日期,因此这些图只是一个点。

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

    df = pd.DataFrame({'WellName':['A','A','A','A','B','B','C','C','C'],
                 'SampleDate':['2018-02-15','2018-03-31','2018-06-07','2018-11-14','2018-02-15','2018-11-14','2018-02-15','2018-03-31','2018-11-14'],
               'Parameter':['Arsenic','Lead','Iron','Magnesium','Arsenic','Iron','Arsenic','Lead','Magnesium'],
               'Value':[0.2,1.6,0.05,3,0.3,0.79,0.3,2.7,2.8]
              })

    for well in df.WellName.unique():
        temp1 = df[df.WellName==well]
        for param in temp1.Parameter.unique():
            fig = plt.figure()
            temp2 = temp1[temp1.Parameter==param]
            plt.scatter(temp2.SampleDate,temp2.Value)
            plt.title('Well {} and Parameter {}'.format(well,param))

【讨论】:

    猜你喜欢
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 2010-11-24
    相关资源
    最近更新 更多