python - 修改 matplotlib 的比例

标签 python matplotlib scatter

我已成功使用命令 plt.axis('equal') 生成比例为 1:1 的散点图,但输出的两侧包含太多空白。我一直在寻找一种方法来删除该空白,使图形更加矩形,但我还没有成功。这是我的代码:

import matplotlib.pyplot as plt


E = [892.255, 837.587, 1227.914, 1212.741, 1053.381]
N = [395.173, 828.072, 662.757, 115.177, 519.491]
Labels = ['J1', 'J3', 'J5', 'C']

plt.scatter(E,N)
plt.annotate('J1', xy=(E[0] - 15, N[0] + 15))
plt.annotate('J3', xy=(E[1] + 10, N[1] + 5))
plt.annotate('J5', xy=(E[2] + 10, N[2] + 5))
plt.annotate('C', xy=(E[3] + 5, N[3] + 5))
plt.annotate('V1', xy=(E[4] + 15, N[4] - 20))
plt.annotate('V2', xy=(1015, 810))

plt.annotate('102,96', xy=(850, 540), size=8.5)
plt.annotate('29,99', xy=(965,655), size=8.5)
plt.annotate('65,13', xy=(1090, 640), size=8.5)
plt.annotate('119,83', xy=(1180, 500), size=8.5)
plt.annotate('82,09', xy=(980, 370), size=8.5)

plt.plot([E[0], E[4]], [N[0], N[4]], color='k', linestyle='-', linewidth=1)
plt.plot([E[1], E[4]], [N[1], N[4]], color='k', linestyle='-', linewidth=1)
plt.plot([E[2], E[4]], [N[2], N[4]], color='k', linestyle='-', linewidth=1)
plt.plot([E[3], E[4]], [N[3], N[4]], color='k', linestyle='-', linewidth=1)
plt.plot([1011.591064, E[4]], [817.704131, N[4]], color='k', linestyle='--', linewidth=1)
plt.scatter(E[4],N[4], s=6500,facecolors='none',  color='k')


plt.grid()
plt.xlabel('E (m)')
plt.ylabel('N (m)')
#plt.ylim((100,900))
#plt.xlim((800,1250))
plt.axis('equal')
plt.axis([800, 1250, 100, 900])
plt.show()

产生:

output

这很好,但是如果 x 轴从 800 到 1300 会更好。有没有办法实现这一点?

最佳答案

我相信您只是想将“adjustable”参数设置为“box”而不是默认的“datalim”

只需在代码末尾附近添加一行类似于 plt.gca().set(adjustable='box') 的内容即可。

使用上面的代码,此更改会产生:

enter image description here

(我还将 x 轴限制更改为 800-1300,而不是 800-1250,以避免一些文本悬卡在边缘上以及自动放置的刻度线过于密集。)

关于python - 修改 matplotlib 的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14866510/

相关文章:

python - 为极坐标散点图数据点添加颜色

python - interp2(V,k) 从 Matlab 到 Python

python - (Python) 具有特殊字符的目录的问题

Python pandas 线图 : change x-axis to be linear

python - Pyplot 图例索引错误 : tuple index out of range

java - JavaFX 中的象限散点图?

python - 游戏 : Generate x random and different coordinates in a definited board

python - 由于 Web 部署而将绝对路径更改为相对路径(Python - Flask)

python - 绘制非多项式多元隐式方程

c - MPI 运行时错误 : Either Scatterv count error, segmentationfault,或卡住