如何在Python中循环遍历元素列表并创建时间序列图

2024-09-24 02:20:36 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我正在处理的数据样本WellAnalyticalData我想循环每个井名,并为每个参数创建一个时间序列图,样本日期在x轴上,值在y轴上。我想我不需要子图,我只是寻找每口井的每个分析物的单独图。我曾经尝试过用熊猫的名字来分组,然后尝试着去策划,但这似乎不是一个可行的方法。我对python还相当陌生,我想我也很难理解如何构造loop语句。我正在运行python3.x并使用matplotlib库来生成绘图。你知道吗


Tags: 数据方法loop绘图参数matplotlib时间语句
1条回答
网友
1楼 · 发布于 2024-09-24 02:20:36

所以,如果我正确理解你的问题,你希望每一个井和参数的组合都有一个图。没有子图,只是每个组合有一个新的图。每个图的x轴上应有采样日期,y轴上应有值。我在这里写了一个循环,就是这样做的,尽管你会看到,因为在你的数据中,每个参数每个井只有一个日期,所以曲线图只是一个点。你知道吗

    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))

相关问题 更多 >