1
import pandas as pd
from plotnine import *

df=pd.DataFrame({'A':[1,1,1,1],'B':[1,9,5,11],'C':['x','x','y','y'],'D':['a','b','a','b']})
p=ggplot(df,aes('A','B'))
p + geom_bar(stat="identity") + facet_grid('D~C',scales='free_y')

这将在左右网格上绘制轴。有没有办法省略右侧网格上的轴,使其仅在左侧可见?我知道我可以使用scales="fixed",但我希望它们在行之间有所不同。

4

1 回答 1

0

为所有面板提供自由刻度但仅对其中一些面板具有刻度和标签是一种误导。但如果你真的想要,你必须为此投入 Matplotlib

import pandas as pd
from plotnine import *

df=pd.DataFrame({'A':[1,1,1,1],'B':[1,9,5,11],'C':['x','x','y','y'],'D':['a','b','a','b']})
p=ggplot(df,aes('A','B'))
p = p + geom_bar(stat="identity") + facet_grid('D~C',scales='free_y')
fig, p = p.draw(return_ggplot=True)
for i, ax in enumerate(p.axs):
    if i % 2:
        ax.set_yticklabels([])
        ax.set_yticks([])
于 2018-04-27T15:34:18.127 回答