Python新手求助:plotly.express绘制F1车手圈位变化图异常
解决Plotly Express绘制F1车手圈位变化的异常问题
下面是针对你遇到的问题的排查和解决步骤:
检查数据唯一性
先确认你的DataFrame里是否存在同一车手、同一圈对应多个位置的重复数据。可以用代码快速验证:print(df.duplicated(subset=['driver', 'lap']).any())如果返回
True,说明有重复项,直接去重即可:df = df.drop_duplicates(subset=['driver', 'lap'], keep='last')修正数据类型
圈数(lap)或位置(position)如果是字符串类型,Plotly可能无法正确解析排序,导致连线混乱。把这两列转成数值类型:df['lap'] = df['lap'].astype(int) df['position'] = pd.to_numeric(df['position'], errors='coerce').dropna()调整Plotly绘图参数
用px.line绘图时,必须指定line_group='driver',确保同一车手的圈位数据被正确分组连线,同时反转Y轴(F1中位置1是第一名,反转后更符合直观认知):import plotly.express as px fig = px.line(df, x='lap', y='position', color='driver', line_group='driver', markers=True) fig.update_layout(yaxis=dict(autorange="reversed")) fig.show()清理缺失值
检查是否存在lap、position或driver列的缺失值,这些也可能导致绘图异常:df = df.dropna(subset=['lap', 'position', 'driver'])
内容的提问来源于stack exchange,提问作者Vini Pinzón
相关产品推荐
相关产品推荐

