在python boxplots中调整X轴上的间距

时间:2019-03-20 12:30:18

标签: python matplotlib plot

我在python 3.x中使用sns.boxplotpandas.DataFrame.boxplot绘制箱线图。

我想问问是否可以调整boxplot中的框之间的间距,所以Group_b的框比输出图中的Group_a的框更靠右。谢谢

代码:

import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns

dict_a = {'value':[1,2,3,7,8,9],'name':['Group_a']*3+['Group_b']*3}
dataframe = pd.DataFrame(dict_a)
sns.boxplot( y="value" , x="name" , data=dataframe )   

输出图:

enter image description here

dataframe.boxplot("value" ,by = "name" )

输出图2:

enter image description here

1 个答案:

答案 0 :(得分:2)

两个框之间的距离由x轴限制确定。对于框之间的数据单位恒定距离,使它们之间或多或少地隔开的是此数据单位距离与轴上显示的整个数据空间相比的分数。 例如,在seaborn情况下,第一个框位于x = 0,第二个框位于x = 1。差异为1个单位。因此,可以通过将x轴限制设置为这些精确限制来获得两个箱形图之间的最大距离,

$stmt->bind_param('s', $editID); 
$stmt->execute();

$result = $stmt->get_result();
$resultCheck = mysqli_num_rows($result);

if ($resultCheck > 0) {
    $data = array();
    $last_event = 0;

    while ($row = $result->fetch_assoc()) {

        if ( $last_event != $row['id'] ) {
            $data['all'] = array($row); 
            $last_event = $row['id'];
        }

        $data['type'] = array('type' => $row['typex_type'], 'id' => $row['typex_id'] );
    }
    //Echo data as JSON
    echo json_encode($data);
}

当然,这将减少每个盒子的一半。

enter image description here

一个更有用的值是ax.set_xlim(0, 1) ,其中ax.set_xlim(0-val, 1+val)位于框的宽度范围内。

需要提到的是,熊猫使用不同的单位。第一个框位于x = 1,第二个框位于x = 2。因此,人们需要像val这样的东西。

以下内容将在图形中添加一个滑块,以查看不同值的效果。

ax.set_xlim(1-val, 2+val)

enter image description here