Seaborn 显示 x-tick 标签重叠

Seaborn showing x-tick labels overlapping

我正在尝试绘制如下所示的箱线图。

现在,有很多我不需要的刻度线,确实不显示任何附加信息。 我使用的代码如下:

plot=sns.boxplot(y=MSE, x=Sim, 
                   width=0.5,
                   palette='colorblind')
plot=sns.stripplot(y=MSE, x=Sim, 
                  jitter=True, 
                  marker='o', 
                  alpha=0.15,
                  color='black')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
plt.gca().invert_xaxis()

其中 MSE 和 SIM 是两个 400 个元素的 numpy 数组。

我查看了一些使用 locator_params 和 set_xticklabels 的解决方案。不过,我想知道:

我希望我的问题足够清楚。

提前致谢。

不太确定你作为 Sim 有什么,如果它是一个浮点数组,那么在绘图之前它们会被转换为分类。由于标签没有用,您可以做的是使用与 y 值一样长的值范围。

因此,它仍然有很多重叠,因为您试图将 400 x 刻度调整到 x 轴上,并且字体大小默认设置为可读。例如:

import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
fig,ax = plt.subplots(figsize=(15,6))

MSE = [np.random.normal(0,1,10) for i in range(100)]
Sim = np.arange(len(MSE))
g = sns.boxplot(y=MSE, x=Sim, width=0.5,palette='colorblind',ax=ax)

您可以将字体设置得更小并且它们不会重叠,但我想它很难阅读:

所以就像你在你的案例中所说的那样,它们没有用,你可以这样做:

ax.set(xticks=Sim[0::10])