【问题标题】:Python pandas plot: Using two columns to generate one y-axisPython pandas plot:使用两列生成一个y轴
【发布时间】:2021-05-28 08:51:07
【问题描述】:

我有一个包含 3 列的 pandas 数据框:条件、试验和时间。我想可视化一个散点图,其中 x 轴代表时间列,y 轴代表条件。特殊之处在于每个条件都有 n 次试验。因此,在数据框中有 n 行具有相同条件的行,在试验列中用不同的试验索引 (1-n) 标记。在图中,我想在单独的行(y 位置)中显示每个试验,即 y 轴上的每个条件都应细分为 n 个试验。

目前,我将数据框绘制如下: df.plot(x = 'Time', y = 'Condition', kind = 'scatter', s = 1)

但是,这会将每个条件的所有试验绘制在同一水平线上。您对如何将 y 轴上的每个条件拆分为单独的试验有什么建议吗?我将不胜感激!

问候和感谢,声波自行车

【问题讨论】:

    标签: python pandas plot


    【解决方案1】:

    理想的解决方案取决于您有多少试验和条件。如果没有太多,您可以使用 seaborn 的 catplot() 函数,该函数旨在将此类分类数据拆分为几个适当对齐的子图。例如:

    import pandas as pd
    import seaborn as sns; sns.set()
    
    df = pd.DataFrame({'Condition': [1, 1, 1, 2, 2, 2], 
                       'Trial': [1, 2, 3, 1, 2, 3],
                       'Time': [0.7, 3.4, 2.1, 3.5, 6.3, 7.4]})
    
    sns.catplot(x='Time', y='Trial', row='Condition', hue='Condition',
                data=df, kind='strip', s=10, height=2, aspect=4);
    

    【讨论】:

    • 非常感谢您提出这个想法!我有 15 个条件和 11 个试验,所以计算确实需要一段时间(几个小时),但这对我来说没问题。谢谢和问候声波
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 2016-10-27
    • 1970-01-01
    • 2012-07-23
    相关资源
    最近更新 更多