我需要在python ggplot上绘制3列Pandas数据帧,并使用相同的索引。这可能吗?
谢谢
答案 0 :(得分:7)
我假设你想要ggplot中的东西在matplotlib中复制这样的东西。
import pandas as pd
df = pd.DataFrame({'a': range(10), 'b': range(5,15), 'c': range(7,17)})
df.plot()
ggplot期望数据采用“长”格式,因此您需要使用melt
进行一些重塑。它目前也不支持绘制索引,因此需要制作一个列。
from ggplot import ggplot, geom_line, aes
import pandas as pd
df = pd.DataFrame({'a': range(10), 'b': range(5,15), 'c': range(7,17)})
df['x'] = df.index
df = pd.melt(df, id_vars='x')
ggplot(aes(x='x', y='value', color='variable'), df) + \
geom_line()
答案 1 :(得分:2)
使用最新版本的ggplot,它更容易:
from ggplot import ggplot, geom_line, aes
import pandas as pd
df = pd.DataFrame({'a': range(10), 'b': range(5, 15), 'c': range(7, 17)})
df['x'] = df.index
ggplot(aes(x='x'), data=df) +\
geom_line(aes(y='a'), color='blue') +\
geom_line(aes(y='b'), color='red') +\
geom_line(aes(y='c'), color='green')