使用以下脚本:
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()
我生成了以下图表:
有没有办法可以删除刻度之间的间距并以相等的间距显示我需要的值?
最佳答案
这可以通过使用 pyplot.xscale
和 pyplot.yscale
更改 x 和 y 比例来完成。修改以下代码:
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)
这给了我们:
关于python - 更改轴以在seaborn中使用对数刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59650382/