Seaborn lineplot 对数刻度

Seaborn lineplot logarithmic scale

我在向绘图中添加对数 X-axis 时遇到问题。我想根据样本大小使用方法 ABC.

显示结果

我的数据框:

            A         B         C
15   0.733333  0.613333  0.733333
30   0.716667  0.693333  0.766667
59   0.733684  0.678485  0.745763
118  0.796667  0.726087  0.779661
236  0.817862  0.788333  0.838983
470  0.832125  0.814468  0.836170

我正在努力工作:

sample_count = np.around(np.logspace(math.log10(15),math.log10(470),6))
sample_count = sample_count.astype(int)

sns.set_style('whitegrid')
g_results=sns.lineplot(data=results,dashes=0,markers=['o','o','o'])
g_results.set(xticks=sample_count)
g_results.set(xscale='log')

然而结果并不是我真正想要的,因为滴答声完全消失了:

如果没有最后 xscale 行,它看起来像这样,这当然是线性刻度,但这次有正确的刻度:

我想达到的效果是这样的:

非常感谢你对我的问题的帮助。

首先将 x 轴的刻度设置为对数,然后根据需要设置 xticks 和标签。

sns.set_style('whitegrid')
g_results=sns.lineplot(data=results,dashes=0,markers=['o','o','o'])
g_results.set(xscale='log')
g_results.set(xticks=sample_count)
g_results.set(xticklabels=sample_count)

这给你这个结果:

请注意,我使用的是 sample_count 定义的对数刻度:

sample_count = np.around(np.logspace(math.log10(15),math.log10(470),6))