【发布时间】:2018-05-21 02:36:59
【问题描述】:
之前有人问过这个问题的各种版本,我不确定我是应该在其中一个线程上提问还是开始一个新线程。如下:
我有一个 pandas 数据框,其中有一列(例如:速度)我正在尝试绘制,然后是另一列(例如:活动),目前为真/假。根据 active 的值,我想为线图着色。
这个帖子似乎是“正确”的解决方案,但我遇到了一个问题: seaborn or matplotlib line chart, line color depending on variable OP 和我正在努力实现同样的目标:
这是一个损坏的情节/复制器:
Values=[3,4,6, 6,5,4, 3,2,3, 4,5,6]
Colors=['red','red', 'red', 'blue','blue','blue', 'red', 'red', 'red', 'blue', 'blue', 'blue']
myf = pd.DataFrame({'speed': Values, 'colors': Colors})
grouped = myf.groupby('colors')
fig, ax = plt.subplots(1)
for key, group in grouped:
group.plot(ax=ax, y="speed", label=key, color=key)
结果图有两个问题:不仅改变的颜色线没有“连接”,而且颜色本身“跨”端点连接:
我想看到的是从红色到蓝色的变化,看起来就像是一条连续的线。
Color line by third variable - Python 似乎做了正确的事情,但我不是在处理“线性”颜色数据。我基本上是在列中分配一组线条颜色。我可以轻松地将颜色列的值设置为数字:
Colors=['1','1', '1', '2','2'...]
如果这样可以更容易地生成所需的图。
第一个帖子里有评论:
如果您在颜色更改时复制点,您可以这样做,我已经 修改后的答案
但我基本上是复制并粘贴了答案,所以我不确定该评论是否完全准确。
【问题讨论】:
标签: python pandas matplotlib plot colors