我有以下问题: 我试图在图中使用子图和两列绘制一些数据,因为否则它会进入图中,我看不到数据。
您可以在此处查看[或多或少]代码:
for i in range(no_of_cust_clusters):
ax[i] = plt.subplot(gs[i],)
df[i].plot(ax=ax[i])
ax[i].legend(bbox_to_anchor=(0, 0, 1, 1),
bbox_transform=plt.gcf().transFigure,ncol=2)
我也尝试过:
bbox_to_anchor=(0, 0, 1, i/no_of_cust_clusters)
bbox_to_anchor=(0, 0, 1, i)
另请注意,gs是gridspec,以便自定义位置。
虽然,当我在绘制数据时,所有的图例都会出现在图的右上角(因为我已经说过我有一个带有多个子图的图,由gridspec指定)。我怎么解决这个问题? 谢谢!
答案 0 :(得分:2)
尝试将变换设置为当前轴,以将图例放在不同的子图
上bbox_transform=ax[i].transAxes
答案 1 :(得分:1)
在for循环结束时解决了这个问题!
plt.legend(bbox_to_anchor=(-0.02, 1),ncol=3,bbox_transform=ax[i].transAxes)
-0.02用于“开箱即用(X)”,1用于从上方开始(Y)
谢谢汤姆!