【问题标题】:seaborn or matplotlib line chart, line color depending on variableseaborn 或 matplotlib 折线图,线条颜色取决于变量
【发布时间】:2016-02-07 05:53:52
【问题描述】:

我有一个包含三列的 pandas 数据框,Date(timestamp)、Color('red' or 'blue') 和 Value(int)。

我目前正在使用以下代码从中获取折线图:

import matplotlib.pyplot as plt
import pandas as pd
Dates=['01/01/2014','02/01/2014','03/01/2014','04/01/2014','05/01/2014','06/01/2014','07/01/2014']
Values=[3,4,6,5,4,5,4]
Colors=['red','red','blue','blue','blue','red','red']
df=pd.DataFrame({'Dates':Dates,'Values':Values,'Colors':Colors})
df['Dates']=pd.to_datetime(df['Dates'],dayfirst=True)

grouped = df.groupby('Colors')
fig, ax = plt.subplots()

for key, group in grouped:
   group.plot(ax=ax, x="Dates", y="Values", label=key, color=key)

plt.show()

我希望线条颜色取决于“颜色”列。我怎样才能做到这一点?

我在here 看到过类似的散点图问题,但我似乎无法将相同的解决方案应用于时间序列折线图。

我目前的输出是这样的:

我正在尝试实现这样的目标(只有一行,但有几种颜色)

【问题讨论】:

  • 你能附上你的数据框的一部分吗?
  • 所以您的示例有 5 个数据点,由 (Date, Value) 表示。在我看来,这将创建一行,而不是 5 行。你到底想改变什么颜色?因为这条线只会采用一种颜色
  • 这个想法是有一条线,颜色会根据数据框中的另一个变量而变化。下面的第一个解决方案通过将每种颜色分成不同的行来接近这个解决方案。

标签: pandas matplotlib seaborn


【解决方案1】:

正如我所说,您可以从我在评论中附加的link 找到答案:

import matplotlib.pyplot as plt
import pandas as pd

Dates = ['01/01/2014', '02/01/2014', '03/01/2014', '03/01/2014',
         '04/01/2014', '05/01/2014']
Values = [3, 4, 6, 6, 5, 4]
Colors = ['red', 'red', 'red', 'blue', 'blue', 'blue']
df = pd.DataFrame({'Dates': Dates, 'Values': Values, 'Colors': Colors})
df['Dates'] = pd.to_datetime(df['Dates'], dayfirst=True)

grouped = df.groupby('Colors')
fig, ax = plt.subplots(1)

for key, group in grouped:
   group.plot(ax=ax, x="Dates", y="Values", label=key, color=key)

换色时需要加点使线条连续

【讨论】:

  • 谢谢。这是我不清楚的 groupby 部分。当颜色不随时间重复时,这种解决方案将每种颜色分成不同的线,效果很好。当他们这样做时,相同颜色的线段连接起来,因此两条线出现在同一日期。我认为matplotlib每行只允许一种颜色?以下是我想要实现的 Tableau 示例:1.bp.blogspot.com/-ZuCBGy0rYwU/T_xIBulGULI/AAAAAAAAEko/…
  • 如果你在颜色改变时复制点,你可以这样做,我已经修改了答案
  • 你也可以试试那个:multicolored_line
  • 我用我的输出更新了我的问题。颜色之间的不连续方面没什么大不了的,但是每条彩色线都连接到相同颜色的下一段的事实是有问题的,而不是只有一条线具有多种颜色。关于如何解决这个问题的任何想法?
  • 据我所知,在任何情况下,您都需要将线条分成几段,然后用适当的颜色绘制它们。 “只有一条线有多种颜色”是什么意思?
猜你喜欢
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-10
相关资源
最近更新 更多