如何设置 seaborn swarmplot 大小和更改图例位置?

How to set a seaborn swarmplot size and change legend location?

我正在尝试用 seaborn 绘制一个 swarmplot,但我正在为情节的传说而苦苦挣扎,我设法改变了它的位置,但现在它被裁剪了,没有显示任何信息:

我移动了图例:

plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)

我更改了图形的大小,但运气不好

plt.figure(figsize=(12, 10))

我也试过 tight_layout() 但它只是从情节中删除了图例。

关于如何让它很好地出现在图的侧面而不在侧面或底部进行任何裁剪,有什么想法吗?

谢谢

plt.tight_layout() 尝试优化 space 时,不考虑图例。但是,您可以使用手动设置 spaces plt.subplots_adjust()

这里的相关参数是图的 right 一侧,因此 plt.subplots_adjust(right=0.7) 是一个好的开始。 0.7 表示坐标轴的右侧部分占总图形大小的 70%,这应该为图例提供足够的 space。
然后,您可能希望根据需要更改该号码。

你可以这样做。

# Import necessary libraries
import seaborn as sns
import matplotlib.pyplot as plt

# Initialize Figure and Axes object
fig, ax = plt.subplots(figsize=(10,4))

# Load in the data
iris = sns.load_dataset("iris")

# Create swarmplot
sns.swarmplot(x="species", y="petal_length", data=iris, ax=ax)

# Show plot
plt.show()

Result is here

Source

(也许我知道太晚了,但我想分享我已经找到的)