图表线I具有的x,用于以下列格式路径Y数据(仅出于说明的样品):如何确定在matplotlib
seq p1 p2
0 20 2 3
1 20 2 4
2 20 4 4
3 22 5 5
4 22 5 6
5 23 6 2
6 23 6 3
7 23 6 4
每个路径具有的点数和它们由SEQ识别属于同一个seq的点被认为是一条路径,依此类推。
我使用下面的代码绘制了这些路径(使用与上述相同格式的我的真实数据)并附加了结果:
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(12, 8))
for (key, grp) in df.groupby("seq"):
grp.plot(linestyle = "solid", x="p1", y="p2", ax = ax, label = key)
box = ax.get_position()
ax.set_position([box.x0, box.y0, box.width * 0.8, box.height])
ax.legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.title("Paths")
plt.show()
我绘制了大约40条路径,现在的问题是我应该如何确定哪个路径是用于uid 184,哪个路径是uid-194?它们都在图例中用相同的颜色标记。有没有一种方法能够明确地识别每条路径,也可以在路径上的某处标记(但可能会使图形混乱)。
我的第二个问题是我想标记每个路径/轨迹的起点和终点。像起点可以绿色和终点可以红色。例如,在上面的示例df中,对于uid-20,起始点是第0行中的(2,3),第2行中的终点是(4,4)。请建议一种方法将这些起点和终点标记为df中的每个路径。
太感谢你了,是的,第一部分是棘手的,我不知道,如果它甚至有可能完全单一的行,太当有大量的轨迹。对于第二部分,线条开始和结束处的标记与线条本身具有相同的颜色,我想特别将开始标记保留为红色,并将结束标记保留为绿色以显示df的路径,我该怎么做那? – Liza
请参阅更新。 –
感谢洛特..只是一点点改变grp.iloc [0]/grp.iloc [-1]应该是这样的双方括号:grp.iloc [[0]] .plot(marker =“o”, x =“px”,y =“py”,ax = ax,color ='r',legend = False)和grp.iloc [[-1]] .plot(marker =“o”,x =“px” ,y =“py”,ax = ax,color ='g',legend = False),否则会改变整个绘图。 – Liza