熊猫盒并排放置不同的DataFrame

琳达

即使网上有很多关于并排绘制箱形图的好例子。用我的数据设置在两个不同的熊猫DataFrames中的方式,并且已经有了总和子图,我无法管理框图彼此相邻而不是重叠。

我的代码如下:

import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
mpl.use('agg')

fig, axarr = plt.subplots(3,sharex=True,sharey=True,figsize=(9,6))
month = ['jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec']
percentiles = [90,95,98]
nr = 0
for p in percentiles:  
    future_data = pd.DataFrame(np.random.randint(0,30,size=(30,12)),columns = month)
    present_data = pd.DataFrame(np.random.randint(0,30,size=(30,12)),columns = month)

    Future = future_data.as_matrix()
    Present = present_data.as_matrix()      

    pp = axarr[nr].boxplot(Present,patch_artist=True, showfliers=False)   
    fp = axarr[nr].boxplot(Future, patch_artist=True, showfliers=False)

    nr += 1           

结果如下所示:重叠箱线图

您能帮我确保这些框彼此相邻,以便我可以比较它们而不会受到重叠的困扰吗?

谢谢!

编辑:我已经减少了一些代码,因此它可以像这样运行。

认真的重要性

您需要手动position放置钢筋,即将位置作为数组提供给boxplot参数。在这里有意义的是将一个移动-0.2并将另一个移动+0.2到它们的整数位置。然后,您可以调整它们的宽度,使其总和小于位置差异。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

fig, axarr = plt.subplots(3,sharex=True,sharey=True,figsize=(9,6))
month = ['jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec']
percentiles = [90,95,98]
nr = 0
for p in percentiles:  
    future_data = pd.DataFrame(np.random.randint(0,30,size=(30,12)),columns = month)
    present_data = pd.DataFrame(np.random.randint(0,30,size=(30,12)),columns = month)

    Future = future_data.as_matrix()
    Present = present_data.as_matrix()      

    pp = axarr[nr].boxplot(Present,patch_artist=True, showfliers=False, 
                           positions=np.arange(Present.shape[1])-.2, widths=0.4)   
    fp = axarr[nr].boxplot(Future, patch_artist=True, showfliers=False,
                           positions=np.arange(Present.shape[1])+.2, widths=0.4)

    nr += 1  

axarr[-1].set_xticks(np.arange(len(month)))
axarr[-1].set_xticklabels(month)
axarr[-1].set_xlim(-0.5,len(month)-.5)

plt.show()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章