我正在使用python和matplotlib绘制下面所示的bloxplot。有没有办法缩小X轴上两个方框图之间的距离?
这是我用来得到上图的代码:
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['ytick.direction'] = 'out'
rcParams['xtick.direction'] = 'out'
fig = plt.figure()
xlabels = ["CG", "EG"]
ax = fig.add_subplot(111)
ax.boxplot([values_cg, values_eg])
ax.set_xticks(np.arange(len(xlabels))+1)
ax.set_xticklabels(xlabels, rotation=45, ha='right')
fig.subplots_adjust(bottom=0.3)
ylabels = yticks = np.linspace(0, 20, 5)
ax.set_yticks(yticks)
ax.set_yticklabels(ylabels)
ax.tick_params(axis='x', pad=10)
ax.tick_params(axis='y', pad=10)
plt.savefig(os.path.join(output_dir, "output.pdf"))
这是一个更接近我想要的视觉效果的例子(尽管我不介意方块图是否更接近彼此):
您可以更改绘图的纵横比,也可以使用
widths
kwarg(doc)这样:使盒子更宽。
当代码编写时:
您将第一个方框图放在0上,第二个方框图放在1上(尽管您随后更改了记号标签),就像在第二个“想要的”示例中一样,您将它们设置为1、2、3。 所以我认为另一种解决方案是利用xticks的位置和情节的xlim。
例如使用
会让他们更靠近。
尝试使用更改纵横比
数字越大,绘图越窄(越高):
http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.set_aspect
相关问题 更多 >
编程相关推荐