我正在运行一些机器学习算法,需要输出25张图表,所有的图表使用相同的数据集,但lambda和sigma的值不同。现在这些图表的输出方式并不理想,因为你无法通过标题了解对应的lambda和sigma值。此外,当我使用plt.tight_layout()
时,系统会报错,显示UserWarning: Tight layout not applied. tight_layout cannot make axes width small enough to accommodate all axes decorations
– 这似乎是因为一行中有太多图表,无法应用紧凑布局。我想知道是否可以将这些图表排列成5×5的形式,还是需要以不同的方式分开这些图表?
sigma_lst = np.logspace(1, 10, 5)lambda_lst = np.logspace(1, 10, 5)fig, axs = plt.subplots(5, 5,figsize=(15,15))for lam in range(lambda_lst.shape[0]): for sig in range(sigma_lst.shape[0]): c = regularizedKernLSTrain(Xtr, Ytr, 'gaussian', sigma=sigma_lst[sig], lam=lambda_lst[lam]) separatingFKernRLS(c, Xtr, Ytr, 'gaussian', sigma=sigma_lst[sig], Xte=Xts, axs=axs[lam,sig]) axs[lam,sig].set_title('sigma = ' + str(sigma_lst[sig]) + ', lambda = ' + str(lambda_lst[lam]))plt.tight_layout()
任何帮助都将不胜感激!
回答:
以下是一些节省空间的建议列表:
- 只在最左列的图表的y轴上放置刻度和标签
- 同样地,只在最底行的图表的x轴上放置刻度和标签
- 将sigma和lambda的值截断为指数表示法
- 只在相应列的顶部放置sigma值,在相应行的左侧放置lambda值
- 使用希腊字母表示sigma和lambda(λ和σ)