【发布时间】:2016-02-08 04:45:41
【问题描述】:
对于单个箱线图,刻度标签对齐可以这样控制:
import matplotlib.pyplot as plt
import matplotlib as mpl
%matplotlib inline
fig,ax = plt.subplots()
df.boxplot(column='col1',by='col2',rot=45,ax=ax)
plt.xticks(ha='right')
这是必要的,因为当刻度标签很长时,如果刻度标签居中(默认行为),则无法读取绘图。
现在讨论多个子图的情况。 (很抱歉,我没有发布完整的代码示例)。我先搭建主图:
fig,axarr = plt.subplots(ny,nx,sharex=True,sharey=True,figsize=(12,6),squeeze=False)
然后是一个 for 循环,它遍历所有子图轴并调用一个函数,该函数在每个轴对象中绘制一个箱线图:
for key,gr in grouped:
ix = i/ny # Python 2
iy = i%ny
add_box_plot(gr,xcol,axarr[iy,ix])
在哪里
def add_box_plot(gs,xcol,ax):
gs.boxplot(column=xcol,by=keyCol,rot=45,ax=ax)
我还没有找到正确对齐刻度标签的方法。
如果我添加
plt.xticks(ha='right')
在函数中的 boxplot 命令之后,只有 last 子图才能正确对齐刻度(为什么?)。
【问题讨论】:
标签: python pandas matplotlib