【发布时间】:2018-07-01 18:18:36
【问题描述】:
我有一个带有两列和一个日期时间索引的 pandas Financial timeseries DataFrame。
TOTAL.PAPRPNT.M Label
1973-03-01 25504.000 3
1973-04-01 25662.000 3
1973-05-01 25763.000 0
1973-06-01 25996.000 0
1973-07-01 26023.000 1
1973-08-01 26005.000 1
1973-09-01 26037.000 2
1973-10-01 26124.000 2
1973-11-01 26193.000 3
1973-12-01 26383.000 3
如您所见,每个数据集对应一个“标签”。如果从前一个“点”到下一个“点”的线具有某些特征(不同类型的股票图变化),则该标签应该基本上分类,因此对每个图使用单独的颜色。这个问题与Plot Multicolored line based on conditional in python 这个问题有关,但“groupby”部分完全跳过了我的理解,这个方案是双色方案而不是多色方案(我有四个标签)。
我想根据与数据框中每个条目关联的标签创建图形的多色图。
【问题讨论】:
-
您不需要 groupby,您需要按照另一个问题中 MPL 文档中的示例进行操作:matplotlib.org/examples/pylab_examples/multicolored_line.html
-
我也看到了,但我不明白如何将它与日期时间索引一起使用。这个特殊的 pylab 涉及使用 linspace 的数学函数。
-
它只是对数据使用布尔掩码/索引。您可以将其应用于数据框中的任何列。
-
如果您不想使用 groupby,则无需使用。我建议您尝试使用 LineCollection 实现基于 matplotlib 示例的解决方案。显示此尝试的代码,并清楚地说明您在什么时候遇到了问题。另请查看this question,它实际上使用 x 轴上的日期。再次明确说明它在多大程度上无济于事。
标签: python pandas matplotlib plot time-series