我在和seaborn一起绘制一系列箱形图
sns.boxplot(full_array)
其中full_array
包含200个数组。因此,我在x轴上有200个箱线图和刻度,从0到200。
xtick彼此太近了,我想只显示其中的一部分,例如,每20个左右标记一个xtick。
我尝试了几种解决方案,如提到的here,但他们没有工作。
每次我对xtick进行采样时,我都会得到错误的tick标签,因为它们从0到N编号,具有单位间距。
例如,与行
ax.xaxis.set_major_locator(ticker.MultipleLocator(20))
我每隔20得到一个带标签的xtick,但标签是1,2,3,4而不是20,40,60,80...
2条答案
按热度按时间rwqw0loc1#
海运箱线图使用FixedLocator和FixedFormatter,即
印刷品
因此,将定位器设置为
MultipleLocator
是不够的,因为刻度的值仍然由固定的格式化程序设置。相反,您需要设置一个
ScalarFormatter
,它将ticklabels设置为与其位置处的数字相对应。busg9geu2#
在seaborn的现代版本(v.0.12.0等)中,tick的值由
FuncFormatter
设置,因此OP的初始尝试工作正常。另一种有效的方法是通过选择每5次来简单地设置xticks。