我试图在seaborn中绘制一些数据,其中x值为百分率* 100作为浮点数(即90.909)。当我绘制情节时:
fig, ax = plt.subplots(figsize=(10,10))
ax = sns.stripplot(df_12['% ident'], df_12['length'], jitter=True)
浮点中的小数点使X轴不可读:
我想将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);
这成功将轴值更改为整数,但是轴看起来很忙。相似的数据集之间显示的数字也不一致。
我想减少轴上显示的值的总数。我尝试使用
ax.xaxis.set_major_locator(plt.MaxNLocator(5))
或类似地
ax.xaxis.set_major_locator(plt.MaxNLocator(5))
ax.set_xticklabels([80, 85, 90, 95, 100])
给出类似以下的输出:
如果将此与上一个图进行比较,您会注意到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))
这不会将轴的值更改为整数,也似乎导致轴不再与数据相关。