箱形图同样展开

时间:2017-12-21 11:42:12

标签: python matplotlib boxplot

我想在x轴上平均分布我的箱线图。下面的代码生成一个图,其中两个箱图关闭,两侧有足够的空间。在生成中,我希望代码能够均匀地展开箱形图,而不管箱形图的数量(在这个例子中只有两个,但通常会有很多)。

import matplotlib.pyplot as plt

statistic_dict = {0.40000000000000002: [0.36003616645322273, 0.40526649416305677, 0.46522159350924536], 0.20000000000000001: [0.11932912803730165, 0.23235825966896217, 0.12380728472472625]}

def draw_boxplot(y_values, x_values, edge_color, fill_color):
    bp = plt.boxplot(y_values, patch_artist=True, positions=x_values)
    for element in ['boxes', 'whiskers', 'fliers', 'medians', 'caps']:
        plt.setp(bp[element], color=edge_color)
    plt.xlabel("x label ")
    plt.ylabel("y label ")
    plt.title("Title")
    for patch in bp['boxes']:
        patch.set(facecolor=fill_color)


y_values = statistic_dict.values()
x_values = statistic_dict.keys()
draw_boxplot(y_values, x_values, "skyblue", "white")
plt.savefig('fileName.png', bbox_inches='tight')
plt.close()

enter image description here

1 个答案:

答案 0 :(得分:1)

箱形图在创建后不会自动调整大小。你可以手动完成。之后还可以添加一些自定义保证金。

plt.gca().autoscale()
plt.gca().margins(x=0.2)