【问题标题】:Plot cotour graph on folium map在 folium 地图上绘制 cotour 图
【发布时间】:2022-01-08 10:17:57
【问题描述】:

我已经使用 matplolib 绘制了一个等高线图,我想在 folium 地图上覆盖这个图,或者有什么方法可以使用 folium 在地图上绘制等高线图

这是我的代码


    import json
    
    import numpy as np
    from scipy.interpolate import griddata
    from matplotlib import pyplot as plt
    
    f = open('data.json', 'r')
    
    data = json.load(f)
    
    temp = data['temp']
    lon = data['lon']
    lat = data['lat']
    
    x = np.linspace(min(lon), max(lon), 100)
    y = np.linspace(min(lat), max(lat), 100)
    
    X,Y = np.meshgrid(x, y)
    Z = griddata((lon, lat), temp, (X, Y), method='cubic')
    
    plt.contour(X,Y, Z)
    plt.show()

我的数据文件data.json,下面是我的绘图现在的样子我想在地图上绘制它

【问题讨论】:

  • 你可以找到thiselsewhere的描述。你的具体问题是什么?什么不起作用?

标签: python plotly contour folium


【解决方案1】:
import json
import numpy as np
from scipy.interpolate import griddata
from matplotlib import pyplot as plt
import geojsoncontour
import geopandas as gpd

f = open('data.json', 'r')

data = json.load(f)

temp = data['temp']
lon = data['lon']
lat = data['lat']

y = np.linspace(min(lon), max(lon), 100)
x = np.linspace(min(lat), max(lat), 100)

X,Y = np.meshgrid(x, y)
Z = griddata((lat, lon), temp, (X, Y), method='cubic')
    
contour =    plt.contour(X,Y, Z)

gdf = gpd.GeoDataFrame.from_features(json.loads(geojsoncontour.contour_to_geojson(
    contour=contour,
    min_angle_deg=3.0,
    ndigits=5,
    stroke_width=1))).set_crs("EPSG:4326")

m = gdf.explore(color=gdf["stroke"])

plt.show()
m

【讨论】:

    猜你喜欢
    • 2022-12-03
    • 2022-09-28
    • 2020-09-24
    • 2021-04-02
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多