【问题标题】:Generate separate plots of coordinates by ID column in DataFrame with matplotlib使用 matplotlib 在 DataFrame 中按 ID 列生成单独的坐标图
【发布时间】:2020-04-24 02:58:48
【问题描述】:

我有一个带有 ID 和 x 和 y 值的 DataFrame。我需要在单独的图表上绘制每个 ID 的 x 和 y 坐标。

   df = pd.DataFrame({'ID':['A','B','B','A','C','C'], 'X': [5,3,4,2,5,3], 'Y':[1,2,6,4,5,2]})

对于此示例数据,预期结果将是 3 张图(A、B 和 C),每张图都绘制了两个点。我试过的代码如下:

   groups = df.groupby('ID')
   fig, ax = plt.subplots()
   for ID,group in groups:
        ax.plot(group.X,group.Y)

这会按 ID 分隔点,但会将所有内容都绘制在同一张图上。如何为每个 ID 生成单独的图表?

【问题讨论】:

    标签: python pandas matplotlib


    【解决方案1】:

    那是因为您将所有内容都绘制到 ax 中。改为:

    groups = df.groupby('ID')
    
    # this is not needed
    # fig, ax = plt.subplots()
    
    for ID,group in groups:
        group.plot(x='X',y='Y')
    

    【讨论】:

    • 我更喜欢这个,因为这样您就可以轻松地将label=ID 添加到情节中。
    【解决方案2】:

    你可以直接用

    df.groupby('ID').plot(x='X', y='Y')
    

    这将为每个 ID 创建一个图表

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      相关资源
      最近更新 更多