【发布时间】:2020-10-15 13:28:13
【问题描述】:
我正在处理以下数据框(仅作说明,实际df很大):
seq x1 y1
0 2 0.7725 0.2105
1 2 0.8098 0.3456
2 2 0.7457 0.5436
3 2 0.4168 0.7610
4 2 0.3181 0.8790
5 3 0.2092 0.5498
6 3 0.0591 0.6357
7 5 0.9937 0.5364
8 5 0.3756 0.7635
9 5 0.1661 0.8364
尝试为上述坐标绘制多条线图(x 为“x1”,y 为“y1”)。
具有相同“seq”的行是一条路径,并且必须绘制为一条单独的线,就像 seq = 2 对应的所有 x、y 坐标属于一条线,依此类推。
我可以绘制它们,但在单独的图表上,我希望所有线都在同一个图表上,使用 subplots,但不正确。
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib notebook
df.groupby("seq").plot(kind = "line", x = "x1", y = "y1")
这会创建 100 个图(等于唯一序列的数量)。建议我一种获取同一图表上所有线条的方法。
**更新*
为了解决上述问题,我实现了以下代码:
fig, ax = plt.subplots(figsize=(12,8))
df.groupby('seq').plot(kind='line', x = "x1", y = "y1", ax = ax)
plt.title("abc")
plt.show()
现在,我想要一种用特定颜色绘制线条的方法。我正在集群 1 中的 seq = 2 和 5 的集群路径;和来自 seq = 3 的路径在另一个集群中。
所以,集群 1 下有两行我想要红色,集群 2 下有 1 行可以是绿色。
我应该怎么做?
【问题讨论】:
标签: python pandas matplotlib