python - matplotlib 和地理数据图的纵横比

标签 python matplotlib aspect-ratio gis

我处理地理信息并使用以下方式呈现结果 matplotlib。所有输入都是纬度/经度 [度]。我转换成 x/y [米] 用于我的计算。我在中展示了我的结果 纬度/经度。问题是获得图形的纵横比 右:所有图表都太宽。是否有标准程序来设置 正确的纵横比,这样我就可以简单地绘制散点图和其他图表
使用纬度/经度结果的形状正确吗?在屏幕上和在 纸(png)?

[这部分是稍后添加的] 这是我的问题的一个简单的剥离版本。我需要实际的纬度/经度值 围绕轴和精确的形状(正方形)。现在它看起来很宽(2x)。

import math
import matplotlib.pyplot as plt
import numpy as np
from pylab import *

w=1/math.cos(math.radians(60.0))
plt_area=[0,w,59.5,60.5] #60deg North, adjacent to the prime meridian

a=np.zeros(shape=(300,300))

matshow(a, extent=plt_area)

plt.grid(False)
plt.axis(plt_area)
fig   = plt.gcf()
fig.set_size_inches(8,8)
fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)

plt.show()

最佳答案

看来我找到了解决办法。 我在这里找到了它:How can I set the aspect ratio in matplotlib?

import math
import matplotlib.pyplot as plt
import numpy as np

w=1/math.cos(math.radians(60.0))
plt_area=[0,w,59.5,60.5] #square area

a=np.zeros(shape=(300,300))

fig = plt.figure()
ax = fig.add_subplot(111)

ax.imshow(a)

plt.grid(False)
ax.axis(plt_area)
fig   = plt.gcf()
fig.set_size_inches(8,8)
ax.set_aspect(w)
fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9)

plt.show()

关于python - matplotlib 和地理数据图的纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18873623/

相关文章:

python - 使用 pandas dataframe,如何按多列分组并添加新列

python - 如何在 .cfg 文件中存储带 # 的单词

python - 我是否需要遍历每一行数据来计算每个列类别的时间?

python - 为 matplotlib 中的所有子图设置相同的轴限制

python - matplotlib FuncAnimation : when to stop?

c# - 试图弄清楚如何将 mac 上的纵横比与 android 匹配

css - 在不改变宽高比的情况下将图像的高度调整为 100% 宽度

python - python 网络应用程序的某些部分是否安全而其他部分不安全?

python - 读取二进制数据并将数据分布在网格文件Python中

svg - 使用固定大小的元素来增长 svg?