【发布时间】: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