Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Seaborn显示x-tick标签重叠_Python_Seaborn_Boxplot - Fatal编程技术网

Python Seaborn显示x-tick标签重叠

Python Seaborn显示x-tick标签重叠,python,seaborn,boxplot,Python,Seaborn,Boxplot,我想画一个像这样的方框图。 现在,有很多我不需要的记号,并且没有显示任何附加信息。 我使用的代码如下所示: plot=sns.boxplot(y=MSE, x=Sim, width=0.5, palette='colorblind') plot=sns.stripplot(y=MSE, x=Sim, jitter=True, marker='

我想画一个像这样的方框图。

现在,有很多我不需要的记号,并且没有显示任何附加信息。 我使用的代码如下所示:

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是两个numpy阵列,每个阵列包含400个元素

我回顾了一些使用定位器参数和设置标签的解决方案。然而,我想知道:

  • 为什么会发生这种情况
  • MSE和SIM阵列中是否有简单的转换来解决此问题
我希望我的问题足够清楚


提前感谢。

不太确定您作为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])

令人惊讶的是,这就是为什么如果它是一个浮动数组,那么它们将转换为绝对的谢谢!是否有更好的方法来绘制浮点数组,使其不转换为分类变量?x轴转换为分类变量。。但不是y值。。所以你用一个数字数组来绘图,就像我上面做的那样?希望我没有误解你