公告
财富商城
积分规则
提问
发文
2019-04-01 02:43发布
爱情/是我丢掉的垃圾
I need to plot 3 columns of a Pandas dataframe on python ggplot, with the same index. Is that possible?
Thank you
With the latest version of ggplot, it's even easier:
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')
I'm assuming you want something in ggplot that replicates something like this in matplotlib.
import pandas as pd df = pd.DataFrame({'a': range(10), 'b': range(5,15), 'c': range(7,17)}) df.plot()
ggplot expects the data to be in 'long' format, so you need to do a little reshaping, with melt. It also currently does not support plotting the index, so that needs to made into a column.
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()
最多设置5个标签!
With the latest version of ggplot, it's even easier:
I'm assuming you want something in ggplot that replicates something like this in matplotlib.
ggplot expects the data to be in 'long' format, so you need to do a little reshaping, with
melt
. It also currently does not support plotting the index, so that needs to made into a column.