Tia*_* He 4 python matplotlib boxplot pandas subplot
在下面的例子中,我尝试为四个"Power"级别制作"Emission"与"Voltage"的箱线图,每个功率级别占据一个子图.
fig = plt.figure(figsize=(16,9))
i = 0
for Power in [10, 20, 40, 60]:
i = i+1
ax = fig.add_subplot(2,2,i)
subdf = df[df.Power==Power]
bp = subdf.boxplot(column='Emission', by='Voltage', ax=ax)
fig.suptitle('My Own Title')
Run Code Online (Sandbox Code Playgroud)
问题是,
fig.suptitle('My Own Title')
Run Code Online (Sandbox Code Playgroud)
命令不会刷新默认的"按电压分组"的格式.我在这里错过了什么?或者这是一个错误?
谢谢.
这些是通过suptitle()
调用生成的,超级标题是fig
对象的子项(是的,suptitle()
被称为4次,每个子图中有一个).
要解决这个问题:
df = pd.DataFrame({'Emission': np.random.random(12),
'Voltage': np.random.random(12),
'Power': np.repeat([10,20,40,60],3)})
fig = plt.figure(figsize=(16,9))
i = 0
for Power in [10, 20, 40, 60]:
i = i+1
ax = fig.add_subplot(2,2,i)
subdf = df[df.Power==Power]
bp = subdf.boxplot(column='Emission', by='Voltage', ax=ax)
fig.texts = [] #flush the old super titles
plt.suptitle('Some title')
Run Code Online (Sandbox Code Playgroud)
小智 5
您也可以执行此操作而无需先手动创建图形:
ax = df.boxplot(by=["some_column"])
ax.get_figure().suptitle("")
Run Code Online (Sandbox Code Playgroud)