Python3.6-在Matplotlib上绘制横向/纵向坐标
这是我第一次使用Matplotlib。我在两个列表中有一系列的纬度和经度坐标,我想以一种有意义的方式表示它们。我不想将Basemap用于 我试图使用Matplotlib以有意义的方式表示这些内容Python3.6-在Matplotlib上绘制横向/纵向坐标,python,matplotlib,Python,Matplotlib,这是我第一次使用Matplotlib。我在两个列表中有一系列的纬度和经度坐标,我想以一种有意义的方式表示它们。我不想将Basemap用于 我试图使用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
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()
我得到了预期的结果
我也尝试过
编辑: 根据以下评论:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
plt.scatter(lat, long)
plt.axis('square')
plt.show()
如注释中所述,将类型更改为浮动:
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()
尝试执行
plt.axis('equal')
或plt.axis('sqaure')
以获得所需的效果。感谢您的评论,但是这并没有正确设置轴。我还尝试设置特定的x和y范围,但这不起作用。您的数字是字符串。将它们转换为浮动您需要更改列表的类型lat
和long
(也可以是long的名称)。试试看,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,不敢相信我忽略了这一点。从文件中读取数据,但未完成转换。它起作用了。谢谢,也ax.scatter(long,lat)
实际表示从地图上获取点的方式也许你的答案足以满足OP的目标,但是(但是)地理坐标应该被投影。。。
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()