說我有:
df ={'animal' : [1, 1, 1, 2, 2, 3, 3, 3, 3],
'x':[76.551, 76.529, 76.336,76.249, 76.077, 77, 77.02, 77.23, 77.733],
'y': [151.933, 151.945, 151.970, 152.004, 152.027, 118.369, 118.615, 118.935, 119.115],
'time': [0, 1, 2, 0, 1, 0, 3,2,5]}
df = pd.DataFrame(df)
我將如何繪制每個獨特動物的 xy 坐標?我正在嘗試使用 .groupby 和 .unique 的東西(不作業)。我可以繪制散點圖:
plt.scatter(df[['x']], df[['y']])
但是我如何遍歷每個獨特的動物并繪制它們的坐標(以不同的顏色),然后如何根據連續的時間點在點之間畫一條線?
uj5u.com熱心網友回復:
您可以使用:
import matplotlib.pyplot as plt
import matplotlib.cm as cm
cmap = cm.get_cmap('rainbow')
colors = cmap(np.linspace(0.15, 0.85, df['animal'].nunique()))
color_map = dict(zip(df['animal'].unique(), colors))
fig, ax = plt.subplots()
for animal, subdf in df.sort_values('time').groupby('animal'):
ax.plot(subdf['x'], subdf['y'], marker='o', label=animal, c=color_map[animal])
ax.legend()
plt.show()


轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451527.html
標籤:Python 熊猫 matplotlib
