【问题标题】:Plot csv file with min/max/avg using python使用 python 绘制具有 min/max/avg 的 csv 文件
【发布时间】:2019-01-31 10:23:03
【问题描述】:

我有一个 csv 文件,每 100 秒有一个测量点。 进行了 5 次不同的测量。 我正在寻找一个简单的解决方案,如何创建一个线图,其中每个测量点的平均值使用 Python 的最小值、最大值作为条形图。 CSV 文件如下所示:

0,0.000622,0.000027,0.000033,0.000149,0.000170 100,0.014208,0.017168,0.017271,0.015541,0.027972 200,0.042873,0.067629,0.035837,0.033160,0.018006 300,0.030700,0.018563,0.016640,0.020294,0.020338 400,0.018906,0.016507,0.015445,0.018734,0.017593 500,0.027344,0.045668,0.015214,0.016045,0.015520 600,0.021233,0.098135,0.016511,0.015892,0.018342

第一列以秒为单位。

也许有人可以帮我一个快速的想法。

提前致谢

--------已添加

到目前为止我有什么:

import pandas as pd

input_df = pd.read_csv(input.csv")
input_df['max_value'] = input_df.iloc[:,1:6].max(axis=1)
input_df['min_value'] = input_df.iloc[:,1:6].min(axis=1)
input_df['avg_value'] = input_df.iloc[:,1:6].mean(axis=1)

input_df.plot(x=input_df["0"], y='avg_value')

如何添加误差线 (min_value,max_value)

【问题讨论】:

  • 到目前为止你尝试过什么?看看 pandas,文档很棒pandas.pydata.org
  • 我们很容易从一些提供的代码开始,而不是从头开始为您编写代码。
  • input_df.plot(x=input_df["0"], y='avg_value', yerr=['min_value', 'max_value']) 这行不像我希望的那样工作。跨度>

标签: python pandas csv matplotlib


【解决方案1】:

您可以使用 matplotlib。对于您的问题:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data=np.array([ [0,0.000622,0.000027,0.000033,0.000149,0.000170],
            [100,0.014208,0.017168,0.017271,0.015541,0.027972],
            [200,0.042873,0.067629,0.035837,0.033160,0.018006],
            [300,0.030700,0.018563,0.016640,0.020294,0.020338],
            [400,0.018906,0.016507,0.015445,0.018734,0.017593],
            [500,0.027344,0.045668,0.015214,0.016045,0.015520],
            [600,0.021233,0.098135,0.016511,0.015892,0.018342] ])
mean = np.mean(data[:,1:], axis=1)
min = np.min(data[:,1:], axis=1)
max = np.max(data[:,1:], axis=1)
errs = np.concatenate((mean.reshape(1,-1)-min.reshape(1,-1), max.reshape(1,-1)- 
mean.reshape(1,-1)),axis=0)

plt.figure()
plt.errorbar(data[:,0], mean, yerr=errs)
plt.show()

【讨论】:

    猜你喜欢
    • 2018-05-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2017-11-01
    • 2018-04-02
    • 2013-07-18
    • 2022-12-13
    • 2018-02-25
    相关资源
    最近更新 更多