首页 > 解决方案 > 在地图上叠加等高线图

问题描述

我正在尝试在地图上绘制等高线图

看起来像这样

在此处输入图像描述

我现在拥有的是,

    import matplotlib
    import matplotlib.pyplot as plt
    import geopandas as gpd
    import plotly.express as px
    import pandas as pd

    world_map = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

    axis = world[world.continent == 'Asia'].plot(color='white', edgecolor='black')
    fig = matplotlib.pyplot.gcf()
    fig.set_size_inches(14,10)

它的输出看起来像这样 在此处输入图像描述

我有一个等高线图

    import plotly.graph_objects as go
    import pandas as pd
    import numpy as np
    from scipy.interpolate import griddata

    df = pd.read_csv('./temperature_2d.csv')
    x = np.array(df.lon)
    y = np.array(df.lat)
    z = np.array(df.value)
    xi = np.linspace(x.min(), x.max(), 100)
    yi = np.linspace(y.min(), y.max(), 100)

    X,Y = np.meshgrid(xi,yi)
    Z = griddata((x,y),z,(X,Y), method='cubic')

    fig = go.Figure(data =
    go.Contour(
    z=Z,
    x=xi,
    y=yi,
    colorscale = 'Hot',
    contours_coloring='heatmap'
    ))
    fig.show()

数据文件是temperature_2d.csv
它的输出图是,

在此处输入图像描述

我想要做的是将等高线图覆盖在我在地图上的temperature_2d.csv中的位置上,但我找不到这样做的方法。我不知道我的做法是否正确.

如果有人可以解释如何正确执行此操作,那将非常有帮助。

标签: pythonmatplotlibplotlycontourgeopandas

解决方案


推荐阅读