在 seaborn catplot 中格式化百分比刻度标签返回值高于预期
Formatting percentage tick labels in seaborn catplot returning values higher than expected
我的 catplot 上的 x 轴目前由分类十进制值组成:
[0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8. 0.9, 1.0]
我正在使用以下方法尝试格式化为百分比,但它返回的值比预期大 10 倍:
for axis in ax.axes.flat:
axis.xaxis.set_major_formatter(ticker.FuncFormatter(lambda x, p: f'{x:.0%}'))
axis.yaxis.set_major_formatter(ticker.FuncFormatter(lambda y, p: f'{y:.2%}'))
当前产量:
[0, 100%, 200%, 300%, 400%, 500%, 600%, 700%, 800%, 900%, 1000%]
y 轴的格式正确,不确定为什么 x 轴返回的值高于预期。
在内部,seaborn 在 x=[0, 1, 2, ..., 10]
处绘制分类变量,这就是百分比格式化程序返回 x=[0, 100, 200, ..., 1000]
.
的原因
在这种情况下,您可以直接应用 %
f-string set_xticklabels
:
xticks = [0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
for axis in ax.axes.flat:
axis.set_xticklabels([f'{x:.0%}' for x in xticks])
axis.yaxis.set_major_formatter(ticker.FuncFormatter(lambda y, p: f'{y:.2%}'))
我的 catplot 上的 x 轴目前由分类十进制值组成:
[0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8. 0.9, 1.0]
我正在使用以下方法尝试格式化为百分比,但它返回的值比预期大 10 倍:
for axis in ax.axes.flat:
axis.xaxis.set_major_formatter(ticker.FuncFormatter(lambda x, p: f'{x:.0%}'))
axis.yaxis.set_major_formatter(ticker.FuncFormatter(lambda y, p: f'{y:.2%}'))
当前产量:
[0, 100%, 200%, 300%, 400%, 500%, 600%, 700%, 800%, 900%, 1000%]
y 轴的格式正确,不确定为什么 x 轴返回的值高于预期。
在内部,seaborn 在 x=[0, 1, 2, ..., 10]
处绘制分类变量,这就是百分比格式化程序返回 x=[0, 100, 200, ..., 1000]
.
在这种情况下,您可以直接应用 %
f-string set_xticklabels
:
xticks = [0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
for axis in ax.axes.flat:
axis.set_xticklabels([f'{x:.0%}' for x in xticks])
axis.yaxis.set_major_formatter(ticker.FuncFormatter(lambda y, p: f'{y:.2%}'))