我使用 geopandas 和 geoviews 的组合创建了地理数据框。我正在使用的库如下:
import pandas as pd
import numpy as np
import geopandas as gpd
import holoviews as hv
import geoviews as gv
import matplotlib.pyplot as plt
import matplotlib
import panel as pn
from cartopy import crs
gv.extension('bokeh')
我已经连接了 3 个 shapefile 来构建英国医疗保健边界的多边形图片(如果需要,可以链接到提供的文件)。不幸的是,据我发现,英国并没有产生一个结合所有这些的文件,因此不得不合并来自我感兴趣的 3 个单独国家的形状文件。这 3 个形状文件的大小为:
形状文件 1 = 5mb ( https://www.opendatani.gov.uk/dataset/department-of-health-trust-boundaries )
形状文件 2 = 204kb ( https://geoportal.statistics.gov.uk/datasets/5252644ec26e4bffadf9d3661eef4826_4 )
形状文件 3 = 22kb ( https://data.gov.uk/dataset/31ab16a2-22da-40d5-b5f0-625bafd76389/local-health-boards-december-2016-ultra-generalised-clipped-boundaries-in-wales )
我已成功合并它们以构建我正在寻找使用的图片:
Test = gv.Polygons(Merged_Shapes, vdims=[('Data'), ('CCG_Name')], crs=crs.OSGB()).options(tools=['hover'], width=550, height=700)
Test_2 = gv.Polygons(Merged_Shapes, vdims=[('Data'), ('CCG_Name')], crs=crs.OSGB()).options(tools=['hover'], width=550, height=700)
但是,我想将这些图表包含在一个可共享的 html 文件中。我遇到的问题是,当我使用以下方法保存 HTML 时:
from bokeh.resources import INLINE
layout = hv.Layout(Test + Test_2)
Final_report = pn.Tabs(('Test',layout)).save('Map_test.html', resources=INLINE)
我生成了一个显示图表的 html 文件,但大小为 80mb,太大了,特别是如果我想在同一个 html 中包含更多多边形图表和其他图表。
有谁知道一种更有效的方法,从内存的角度来看,我可以将我的多边形图存储在 HTML 文件中以供共享?