Matplotlib 如何增加柱状图之间的间距 | 您所在的位置:网站首页 › 柱状图的数据怎么修改 › Matplotlib 如何增加柱状图之间的间距 |
Matplotlib 如何增加柱状图之间的间距
Matplotlib是一款Python的可视化库,可以用来绘制大量的图表,包括柱状图。在Matplotlib中,我们可以使用bar函数绘制柱状图,但是默认情况下,各个柱状图之间的间距比较小,这会影响到图表的可读性,因此我们需要用一些方法来增加柱状图之间的间距。 阅读更多:Matplotlib 教程 方法一:在bar函数中使用参数width和align在bar函数中,有两个参数可以控制柱状图之间的间距,分别是width和align。 width表示柱状图的宽度,我们可以将其设为一个小于1的小数,这样就可以让柱状图之间留下足够的间距。比如下面的代码: import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [5, 4, 3, 2, 1] plt.bar(x, y, width=0.8) plt.show()运行后,会生成一张宽度为0.8的柱状图,看起来各个柱状图之间的间距比较合适。 另外一个参数是align,表示柱状图的对齐方式。它的取值可以是’center’、’edge’或者’zero’,分别表示居中对齐、靠右对齐和靠左对齐。我们可以将它设置为’edge’,这样就可以让柱状图之间的间距更大。比如下面的代码: import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [5, 4, 3, 2, 1] plt.bar(x, y, width=0.8, align='edge') plt.show()运行后,会生成一张靠右对齐的柱状图,看起来各个柱状图之间的间距更大。 方法二:使用subplots_adjust函数调整子图间距除了在bar函数中调整柱状图之间的间距之外,我们还可以使用Matplotlib提供的subplots_adjust函数来调整整张图表中的子图间距。这个函数的用法如下: plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)其中,left、bottom、right、top表示整张图表的四个边界距离,取值范围为[0,1];wspace和hspace表示子图之间的水平和竖直间距,取值范围为[0,1],表示相对于整张图表的宽度和高度的比例。 通过调整这些参数,我们就可以增加柱状图之间的间距。比如下面的代码: import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y1 = [5, 4, 3, 2, 1] y2 = [1, 2, 3, 4, 5] fig, (ax1, ax2) = plt.subplots(1, 2) ax1.bar(x, y1) ax2.bar(x, y2) plt.subplots_adjust(wspace=0.5) plt.show()运行后,会生成两张柱状图放在同一张图表上,它们之间的间距较大。 方法三:使用set_xticks函数调整刻度间距除了调整柱状图之间的间距之外,我们还可以使用set_xticks函数来调整x轴上的刻度间距。在这种情况下,我们可以把所有的柱状图都绘制在同一个子图中,但是它们的x轴刻度之间距离较大,从而使得柱状图之间的间距也变大了。比如下面的代码: import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y1 = [5, 4, 3, 2, 1] y2 = [1, 2, 3, 4, 5] fig, ax = plt.subplots() ax.bar(x, y1, label='y1') ax.bar(x, y2, label='y2', bottom=y1) ax.set_xticks(range(1, 6, 2)) plt.legend() plt.show()运行后,会生成一张x轴上刻度较少的柱状图。由于y2的bottom参数被设为y1,因此它们的柱状图会叠加在一起,从而增加了柱状图之间的间距。 总结在Matplotlib中,我们可以使用多种方法来增加柱状图之间的间距。其中,最简单的方法是在bar函数中使用width和align参数来控制柱状图的宽度和对齐方式。另外,我们还可以使用subplots_adjust函数调整整张图表中子图的间距,或者使用set_xticks函数来调整x轴上的刻度间距。通过这些方法,我们可以获得符合需求的柱状图,提供更好的数据可视化效果。 |
CopyRight 2018-2019 实验室设备网 版权所有 |