You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中单图展示两位用户的位置点变化曲线

同一图表绘制两位用户位置点变化曲线的方法

没问题,我来帮你搞定在同一图表里展示两位用户的位置点变化曲线。首先要注意的是,你的原始数据里tslot是字符串格式,建议先转换成时间类型,这样绘图时的X轴会是合理的时间序列,展示效果更好。下面是两种实用方法:

方法一:分用户提取数据后绘制(更直观可控)

import pandas as pd
import matplotlib.pyplot as plt

# 第一步:转换时间列格式并设置为索引
df['tslot'] = pd.to_datetime(df['tslot'])
df.set_index('tslot', inplace=True)

# 创建绘图画布和轴对象
fig, ax = plt.subplots(figsize=(20, 10))

# 分别绘制两位用户的曲线,并指定标签
df[df['user'] == 0]['Location_point'].plot(ax=ax, label='用户0')
df[df['user'] == 1]['Location_point'].plot(ax=ax, label='用户1')

# 添加图表元素,让结果更清晰
ax.set_xlabel('时间区间')
ax.set_ylabel('位置点ID')
ax.set_title('两位用户的位置点变化趋势')
ax.legend()  # 显示图例区分不同用户

plt.show()

方法二:使用groupby批量绘制(更简洁高效)

如果你想少写点代码,用groupby可以一键完成分组绘图:

import pandas as pd
import matplotlib.pyplot as plt

# 同样先处理时间格式
df['tslot'] = pd.to_datetime(df['tslot'])
df.set_index('tslot', inplace=True)

# 按user分组后直接绘制,默认会把不同用户的曲线放在同一图中
df.groupby('user')['Location_point'].plot(figsize=(20, 10), legend=True)

# 添加必要的标签和标题
plt.xlabel('时间区间')
plt.ylabel('位置点ID')
plt.title('两位用户的位置点变化趋势')

plt.show()

补充说明

你之前的代码dt = data.iloc[:,2:3]是提取了所有用户的位置点数据混在一起绘制,所以看不到分用户的趋势。上面两种方法都是先区分不同用户的数据,再在同一个轴上绘制曲线,这样就能清晰对比两位用户的位置变化啦。

内容的提问来源于stack exchange,提问作者Krush23

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:02:25