更改轴以在Seaborn中使用对数刻度

亚历克斯·高夫特

使用以下脚本:

ticks = ['1', '2', '4', '8', '16']
resize = [1, 2 ,4 ,8 ,16]
batch_size = [1 ,2 ,4, 8, 16]

def main():
    headers = ["RESIZE FACTOR", "BATCH SIZE", "FPS", "TOL", "GAIN"]

    graph = []

    for rs in resize:
        for bs in batch_size:
            fps = random()
            tol = random()

            gain = 100*(fps+tol)
            curr = [rs, bs, fps, tol, gain]

            graph.append(curr)

    graph_df = pd.DataFrame(graph, columns=headers)

    sns.scatterplot(data=graph_df,
                    x="RESIZE FACTOR",
                    y="BATCH SIZE",
                    size="GAIN",
                    edgecolor='none'
                    )

    plt.xticks(resize, ticks)
    plt.yticks(resize, ticks)
    plt.autoscale(False)

    plt.xlabel("RESIZE FACTOR")
    plt.ylabel("BATCH SIZE")

    plt.show()

我产生以下图:

在此处输入图片说明

有没有一种方法可以消除刻度线之间的间距并以相等的间距显示我需要的值?

CDJB

这可以通过使用pyplot.xscale更改x和y比例来完成pyplot.yscale更改以下代码:

plt.xticks(resize, ticks)
plt.yticks(resize, ticks)
plt.autoscale(False)

至:

plt.yscale("log")
plt.xscale("log")
plt.xticks(resize, ticks)
plt.yticks(resize, ticks)
plt.autoscale(False)

这给了我们:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章