【问题标题】:How can I plot two lines from different CSVs with plotly in Python?如何在 Python 中使用 plotly 绘制来自不同 CSV 的两条线?
【发布时间】:2022-02-05 07:38:57
【问题描述】:

我想在 colab 中使用 Plotly 绘制来自两个不同 csv 文件(但列名相同)的数据。绘制一个我目前拥有的 csv:

import pandas as pd
import plotly.express as px

a1 = ('/content/a1.csv')
a2 = ('/content/a2.csv')
b1 = ('/content/b1.csv')
b2 = ('/content/b2.csv')

a1_df = pd.read_csv(a1)
a1_graph = px.line(a1_df, x = 'timestamp', y = 'raw_1', title='a1')
a1_graph.show()

但是是否可以在同一个 px.line 函数中绘制两个 csv?

【问题讨论】:

    标签: python csv


    【解决方案1】:

    您可以将数据框连接在一起并使用颜色 kwarg 分隔行。

    import pandas as pd
    import plotly.express as px
    
    a1 = ('/content/a1.csv')
    a2 = ('/content/a2.csv')
    b1 = ('/content/b1.csv')
    b2 = ('/content/b2.csv')
    
    dfList = []
    
    a1_df = pd.read_csv(a1)
    a1_df['file'] = 'a1'
    dfList.append(a1_df)
    
    a2_df = pd.read_csv(a2)
    a2_df['file'] = 'a2'
    dfList.append(a2_df)
    
    b1_df = pd.read_csv(b1)
    b1_df['file'] = 'b1'
    dfList.append(b1_df)
    
    b2_df = pd.read_csv(b2)
    b2_df['file'] = 'b2'
    dfList.append(b2_df)
    
    df = pd.concat(dfList, axis=1)
    
    a1_graph = px.line(df, x = 'timestamp', y = 'raw_1', color = 'file', title='all files')
    a1_graph.show()
    

    【讨论】:

    • 我是 Python 新手。我应该用某个目录替换“文件”吗?如果它是“原样”,我会收到一个错误:ValueError:The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
    • @ShaumDebnath。不,“文件”只是一个列名。因此,当数据帧连接成 1 个长数据帧时,会有一个额外的列来指示源数据帧。然后可以在情节中使用它来分隔线条。
    • @ShaumDebnath 也许如果您使用带有一些示例数据的工作示例来编辑您的问题,那么我对其进行测试会更容易。
    猜你喜欢
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 2016-05-11
    • 2016-03-12
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    相关资源
    最近更新 更多