首页 > 解决方案 > python matplotlib pandas unstack问题

问题描述

courses = ['Newcastle', 'Wolverhampton', 'Lingfield AW', 'Southwell']

d = data.loc[(data['ind_delta_time'] <= 30)
                #& (data['class'].isin(classes))
                #& (data['surf'] == 'AW')
                & (data['course'].isin(courses))
                #& (data['race_type'] != 'Handicap')
                & (data['pos'] == 1)
            ]

d.groupby(['course', 'dist_f'])['median_stride_freq'].median().unstack('course').plot(marker = 'o').legend(bbox_to_anchor=(1.05, 1), loc='upper left')

下面是从上面的代码生成的图,我希望在所有与中间的一点红色相同颜色的点之间有一条线。这是情节: ![1]

标签: pythonpandasmatplotlib

解决方案


试试这个。样式中的第一个字母是颜色,然后是标记,然后是线型。

d = data.loc[(data['ind_delta_time'] <= 30)
                #& (data['class'].isin(classes))
                #& (data['surf'] == 'AW')
                & (data['course'].isin(courses))
                #& (data['race_type'] != 'Handicap')
                & (data['pos'] == 1)
            ]
styles1 = ['bs-','go-','y^-','rs-']
(d.groupby(['course', 'dist_f'])['median_stride_freq'].median()
           .unstack('course').plot(style=styles1)
           .legend(bbox_to_anchor=(1.05, 1), loc='upper left'))

推荐阅读