我想为一个索引级别制作堆叠条形图,而另一个保持未堆叠。下面的代码为每个索引行创建元组:
from pandas import DataFrame, MultiIndex
from numpy import repeat
from numpy.random import randn
arrays = [repeat('a b'.split(),2),[True,False,True,False]]
midx = MultiIndex.from_tuples(zip(*arrays), names=['letters','bool'])
df = DataFrame(randn(4,2)**2+5, index=midx)
df.plot(kind='bar', stacked=True)
plt.legend(loc="center right", bbox_to_anchor=(1.5, 0.5), ncol=2)
但我更希望看到 (0,1) 并排分组,就像使用这个 R 代码(在 IPython 中)一样:
%load_ext rmagic
dr = df.stack().reset_index()
接着
%%R -i dr
library(ggplot2)
names(dr) <- c('letters','bool','n','value')
x <- ggplot() +
geom_bar(data=dr, aes(y = value, x = letters, fill = bool),
stat="identity", position='stack') +
theme_bw() +
facet_grid( ~ n)
print(x)
现在:有没有办法在pandas中做到这一点,我应该折磨matplotlib ,我应该为 python安装ggplot还是应该使用 Rmagic 在 IPython 中运行ggplot2(就像我刚刚做的那样)?我无法获得rpy2的 ggplot 类
from rpy2.robjects.lib import ggplot2
使用我的布局(还)。