具有正确缩放比例的Seaborn Stripplot轴值

时间:2018-07-06 23:12:48

标签: seaborn

我试图在seaborn中绘制一些数据,其中x值为百分率* 100作为浮点数(即90.909)。当我绘制情节时:

fig, ax = plt.subplots(figsize=(10,10))
ax = sns.stripplot(df_12['% ident'], df_12['length'], jitter=True)

浮点中的小数点使X轴不可读:

Initial Plot

我想将x轴设置为仅显示5的整数倍(即80、85、90、95、100)。

我尝试过的一种方法是:

fmt = '{:0.0f}'
xticklabels = []
count = 0
for item in ax.get_xticklabels():
    count+= 1
    item.set_text(fmt.format(float(item.get_text())));
    xticklabels += [item];
ax.set_xticklabels(xticklabels);

这成功将轴值更改为整数,但是轴看起来很忙。相似的数据集之间显示的数字也不一致。

Second Plot

我想减少轴上显示的值的总数。我尝试使用

ax.xaxis.set_major_locator(plt.MaxNLocator(5))

或类似地

ax.xaxis.set_major_locator(plt.MaxNLocator(5))
ax.set_xticklabels([80, 85, 90, 95, 100])

给出类似以下的输出:

Third Plot

如果将此与上一个图进行比较,您会注意到x轴标签不再与绘制的点相关。如何设置x轴的值,同时仍使其与绘制的点相关?

我尝试过的其他事情:

ax.set_xlim(75, 100)

此变量和任何变体都会导致空白图。

ax.set(xticklabels=[75,80,85,90,95,100])

在轴标签与数据不匹配的地方做同样的事情。

ax.set(xticks=range(75,101), xticklabels=[75,80,85,90,95,100])

导致所有数据点卡在图的左侧,所有轴标签重叠在右侧的单个刻度上。

ax.xaxis.set_major_locator(ticker.MaxNLocator(integer=True))

这不会将轴的值更改为整数,也似乎导致轴不再与数据相关。

0 个答案:

没有答案