【发布时间】: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 范围,但这不起作用。
-
你的数字是字符串。将它们转换为浮点数
-
您需要更改列表
lat和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,不敢相信我忽略了这一点。从文件中读取数据并错过了转换。它奏效了。
标签: python matplotlib