我是新手Python程序员,使用
我编写了一个名为
编辑2:使用
pyplot
绘图时遇到了一些困难。我的目标是在Juypter Notebook中使用%pylab inline
绘制一组内联图形。我编写了一个名为
plot_CV
的函数,它可以绘制某个x的多项式度数的交叉验证误差,并且在不同的图中惩罚项(lambda)的度数会有所变化。最终,lambda中有10个元素,并且它们由plot_CV
的第一个参数控制。fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
ax1 = plot_CV(1,CV_ve=CV_ve)
给予
现在我认为我需要使用add_subplot
来创建一个类似于网格的图表:
fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax1 = plot_CV(1,CV_ve=CV_ve)
ax2 = fig.add_subplot(2,2,2)
ax2 = plot_CV(2,CV_ve=CV_ve)
ax3 = fig.add_subplot(2,2,3)
ax3 = plot_CV(3,CV_ve=CV_ve)
ax4 = fig.add_subplot(2,2,4)
ax4 = plot_CV(4,CV_ve=CV_ve)
plt.show()
然而,如果我继续这样做,那么图形会变得越来越小,并开始在x和y标签上重叠。这里是一个3×3图形的图片。
有没有一种方法可以均匀地分配图形的空间,以便它们不重叠,并更好地利用Jupyter Notebook中的水平和垂直内联空间?为了说明这一点,在这里是来自jupyter的屏幕截图:
最终说明:我仍需要添加一个标题或注释,以显示在plot_CV
中使用的当前lambda级别。
编辑:使用建议的紧凑布局,得到:
编辑2:使用
fig.set_figheight
和fig.set_figwidth
,我最终可以使用完整的长度和高度。
plt.show()
之前尝试过plt.tight_layout()
吗?否则你需要减少刻度标签的频率和轴标签的大小。 - sascha