【问题标题】:Python3.6 - Plotting lat/long co-ordinates on Matplotlib [duplicate]Python3.6 - 在 Matplotlib 上绘制纬度/经度坐标 [重复]
【发布时间】:2018-11-09 10:48:20
【问题描述】:

这是我第一次使用 Matplotlib。我在两个列表中有一系列纬度和经度坐标,我想以有意义的方式表示它们。我不想为several reasons 使用底图。

lat = ['35.905333', '35.896389', '35.901281', '35.860491', '35.807607', '35.832267', '35.882414', '35.983794', '35.974463', '35.930951']
long = ['14.471970', '14.477780', '14.518173', '14.572245', '14.535320', '14.455894', '14.373217', '14.336096', '14.351006', '14.401137']

我正在尝试使用 Matplotlib 以有意义的方式表示这些。

import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
plt.scatter(lat, long)
plt.show()

但是我的图如下:

我无法设置轴以获得这些坐标的有意义的表示。如何才能做到这一点?我做错了什么?

我正在寻找这样的东西:

import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)

plt.scatter(x, y)
plt.show()

我得到了预期的结果。

我也试过plot on a cartesian coordinate system


编辑:

根据下面的评论:

import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
plt.scatter(lat, long)
plt.axis('square')
plt.show()

【问题讨论】:

  • 尝试使用plt.axis('equal')plt.axis('sqaure') 以获得所需的效果。 Source
  • 感谢您的评论,但是这并没有正确设置轴。我也尝试设置特定的 x 和 y 范围,但这不起作用。
  • 你的数字是字符串。将它们转换为浮点数
  • 您需要更改列表latlong的类型(可能也是长名称)。试试看,lat = np.array(['35.905333', '35.896389', '35.901281', '35.860491', '35.807607', '35.832267', '35.882414', '35.983794', '35.974463', '35.930951'], dtype=float)
  • @DavidG,不敢相信我忽略了这一点。从文件中读取数据并错过了转换。它奏效了。

标签: python matplotlib


【解决方案1】:

如评论中所说,将类型改为float:

import numpy as np
import matplotlib.pyplot as plt

lat = np.array(['35.905333', '35.896389', '35.901281', '35.860491', '35.807607', 
'35.832267', '35.882414', '35.983794', '35.974463', '35.930951'], dtype=float)
long = np.array(['14.471970', '14.477780', '14.518173', '14.572245', '14.535320', 
'14.455894', '14.373217', '14.336096', '14.351006', '14.401137'], dtype=float)

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(lat, long)
# ax.axis('equal')
plt.show()

【讨论】:

  • 谢谢,也感谢ax.scatter(long, lat) 实际代表如何从地图中获取点
  • 也许您的答案足以满足 OP 的目标,但应该投影(但)地理坐标......
  • ax.axis('equal')点赞
猜你喜欢
  • 1970-01-01
  • 2019-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-16
  • 2021-04-09
相关资源
最近更新 更多