【问题标题】:How to create multiple line plots in pandas with columns having list values?如何在具有列表值的列的熊猫中创建多条线图?
【发布时间】:2019-08-12 10:44:15
【问题描述】:

我想知道如何为 pandas 数据框绘制多条线图,其中列具有列表作为元素。

例如,我可以使用这些数据绘制两个图:

import numpy as np
import pandas as pd
import seaborn as sns
sns.set(color_codes=True)

import matplotlib.pyplot as plt
%matplotlib inline

df = pd.DataFrame({
    'pig': [20, 18, 489, 675, 1776],
    'horse': [4, 25, 281, 600, 1900]},
    index=[1990, 1997, 2003, 2009, 2014])

df.plot.line()

但是,如何为以下数据绘制相似的两个图?

df1 = pd.DataFrame({
    'pig': [[20, 18, 489, 675, 1776],[20, 18, 489, 675, 1776]],
    'horse': [[14, 25, 271, 700, 1900],[14, 65, 381, 600, 1900]]},
    index=['A','B']
    )

print(df1)
                        pig                     horse
A  [20, 18, 489, 675, 1776]  [14, 25, 271, 700, 1900]
B  [20, 18, 489, 675, 1776]  [14, 65, 381, 600, 1900]

对于每个索引 A 和 B,我想要 x 轴 = 猪和 y 轴 = 马图。 但我不确定该怎么做。非常感谢您的帮助。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以遍历索引,但这不是 Pandas 中的最佳做法,但它适用于您的情况:

    import pandas as pd
    import matplotlib.pyplot as plt
    
    df1 = pd.DataFrame({
        'pig': [[20, 18, 489, 675, 1776],[20, 18, 489, 675, 1776]],
        'horse': [[14, 25, 271, 700, 1900],[14, 65, 381, 600, 1900]]},
        index=['A','B']
        )
    
    for idx in df1.index.values:
        plt.plot(df1['pig'].loc[idx], df1['horse'].loc[idx], label=idx)
    plt.legend()    
    plt.xlabel('Pig')
    plt.ylabel('Horse')
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2013-09-24
      • 2021-09-29
      • 2021-02-12
      • 2019-03-01
      • 2020-03-02
      • 2016-12-01
      • 2019-12-01
      • 1970-01-01
      相关资源
      最近更新 更多