我有一个以下数据路径的路径,(x,y)属于同一个“uid”的点被认为是一个单独的路径。
uid x y
0 5 1 1
1 5 2 1
2 5 3 1
3 5 4 1
4 21 4 5
6 21 6 6
7 21 5 7
8 25 1 1
9 25 2 2
10 25 3 3
11 25 4 4
12 25 5 5
13 27 1 3
14 27 2 3
15 27 4 3
以下是我用来绘制这些路径的代码:
%matplotlib notebook
fig, ax = plt.subplots(figsize=(12,8))
df.groupby("uid").plot(kind='line', x = "x", y = "y", ax = ax)
plt.title("Paths")
#ax.legend_.remove()
plt.show()
因为matplotlib会自动为图中的每一行生成颜色,我想根据“uid”来控制从我的df生成的路径的颜色。
假设我想保持为 uid = 25 和 uid = 27 生成的路径的颜色为绿色,其余的都是黑人。
另外,我想将uid = 25,27的“kind”更改为点缀,而其他所有行应该是简单的行。我怎样才能做到这一点?
答案 0 :(得分:1)
这就是你如何做一个循环:
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_table("data.txt", sep=" ")
fig, ax = plt.subplots(figsize=(12, 8))
color = ["k", "g"]
line = ["solid", "dotted"]
for (key, gr) in df.groupby("uid"):
if key == 25 or key == 27:
i = 1
else:
i = 0
gr.plot(linestyle=line[i], x="x", y="y", ax=ax, color=color[i], label=key)
plt.title("Paths")
plt.show()