關於如何在matplotlib中的地圖中插入比例尺以顯示長度比例的任何想法?像我附加的東西。如何在matplotlib中的地圖中插入比例尺
或者也許有自動測量和顯示距離的任何想法(不繪製箭頭和手動寫入距離!)?
關於如何在matplotlib中的地圖中插入比例尺以顯示長度比例的任何想法?像我附加的東西。如何在matplotlib中的地圖中插入比例尺
或者也許有自動測量和顯示距離的任何想法(不繪製箭頭和手動寫入距離!)?
我會嘗試matplotlib-scalebar
包。 (類似於您的示例c)
假設您繪製的地圖圖像爲imshow
或類似圖像,並且您知道像素寬度/像元大小(地圖圖像上一個像素的實際等效大小) ,可以自動創建比例尺:
這個例子是直客PyPi matplotlib-scalebar package page,但在這裏是爲了完整性:
import matplotlib.pyplot as plt
import matplotlib.cbook as cbook
from matplotlib_scalebar.scalebar import ScaleBar
plt.figure()
image = plt.imread(cbook.get_sample_data('grace_hopper.png'))
plt.imshow(image)
scalebar = ScaleBar(0.2) # 1 pixel = 0.2 meter
plt.gca().add_artist(scalebar)
plt.show()
有一個已經離在matplotlib中稱爲AnchoredSizeBar的scalebars類。在下面的示例中,AnchoredSizeBar用於向圖像添加比例尺(或者在100x100米的隨機區域上繪製地圖)。
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredSizeBar
import matplotlib.font_manager as fm
fontprops = fm.FontProperties(size=18)
fig, ax = plt.subplots()
ax.imshow(np.random.random((10,10)),extent=[0,100,0,100])
Extent定義了圖像的水平和垂直值的最大值和最小值。
scalebar = AnchoredSizeBar(ax.transData,
20, '20 m', 'lower center',
pad=0.1,
color='white',
frameon=False,
size_vertical=1,
fontproperties=fontprops)
ax.add_artist(scalebar)
AnchoredSizeBar的四個第一個參數是座標系,縮放條長度,標籤和位置的變換對象。其他可選參數更改佈局。這些在文檔中很好解釋。
ax.set_yticks([])
ax.set_xticks([])
這給 Scalebar on an image/a map over a 100x100 meter area of random
看到這個問題還有:[?是否有一個規模指標添加到matplotlib陰謀的便捷方式(https://stackoverflow.com/questions/43258638/IS-有-A-方便路到附加了大規模指示器到一個積合matplotlib) – ImportanceOfBeingErnest