Seaborn线图对数刻度

时间:2020-11-10 12:45:55

标签: python seaborn line-plot

我在绘图中添加对数X轴时遇到问题。我想使用方法A,B和C显示基于样本量的结果

我的数据框:

            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')

无论结果是not what I exactly want,刻度线都消失了。

没有最后xscale行,它是looks like this,这当然是线性比例,但是这次带有正确的刻度。

我想要实现的是like this

感谢您对我的问题的帮助。

1 个答案:

答案 0 :(得分:1)

首先将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)

This gives you this result

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

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