保持seaborn/matplotlib中x/y轴相同长度

7
我正在使用matplotlib和seaborn生成一些图形,如下例所示,x轴和y轴的长度不同。

enter image description here

有没有办法确保每个轴都是相同比例?
我的示例代码并不特别,但这里是一个示例:
# plot data
plt.scatter(df['x'], df['y'], color = 'gray', s=5) # s controls point size
plt.xlim(-0.0002,0.002)
plt.ylim(-0.0002,0.002)

# add y=x line
plt.plot([0,1],[0,1], lw=2, color='#414242', linestyle='dashed')

sns.set_context("paper", font_scale=1.5)
plt.xlabel(xlabel, {'size':'20'})
plt.ylabel(ylabel, {'size':'20'})
plt.title(title)

sns.set_style('ticks')
sns.despine(offset=10, trim=True)
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()

使用 plt.axis('equal')

在此输入图片描述


你能提供一个 [mcve] 并清楚地解释一下这两个输出有什么问题吗?(我猜第一个的问题是轴的长度不相等?但第二个的问题是什么?在这里使用 sns 函数有什么用处?如果不使用它们,问题也会出现吗?) - ImportanceOfBeingErnest
1个回答

6

我认为你想要使用plt.axis('equal'),请点击这里查看示例。


这似乎有效,尽管它确实会导致数据对齐发生很大的偏移。有没有办法防止这种情况发生?(我在上面放了一个例子。看起来图形大小不会改变,只有轴条长度)。 - The Nightman
axes 有对应的函数吗? - Rylan Schaeffer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接