最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python和Pyecharts創(chuàng)建交互式地圖

 更新時(shí)間:2025年04月28日 14:19:13   作者:winfredzhang  
在數(shù)據(jù)可視化領(lǐng)域,創(chuàng)建交互式地圖是一種強(qiáng)大的方式,可以使受眾能夠以引人入勝且信息豐富的方式探索地理數(shù)據(jù),下面我們看看如何使用 Python 和 Pyecharts實(shí)現(xiàn)吧

簡(jiǎn)介

在數(shù)據(jù)可視化領(lǐng)域,創(chuàng)建交互式地圖是一種強(qiáng)大的方式,可以使受眾能夠以引人入勝且信息豐富的方式探索地理數(shù)據(jù)。本文將深入探討如何使用 Python 和 Pyecharts 庫(kù)創(chuàng)建交互式上海地圖。

Pyecharts 簡(jiǎn)介

Pyecharts 是一個(gè)基于 Python 的可視化庫(kù),它利用 ECharts 的強(qiáng)大功能,ECharts 是一個(gè)流行的 JavaScript 圖表庫(kù)。Pyecharts 允許開(kāi)發(fā)人員使用 Python 創(chuàng)建各種交互式圖表,包括地圖、折線圖、條形圖等。

C:\pythoncode\new\output\PyechatChinaMap.py

創(chuàng)建上海地圖

以下 Python 代碼演示了如何使用 Pyecharts 創(chuàng)建交互式上海地圖:

import wx
import wx.html2
import os
import time
import logging
from pyecharts import options as opts
from pyecharts.charts import Map
from pyecharts.globals import ThemeType
import random
 
# 設(shè)置日志記錄以調(diào)試問(wèn)題
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
 
class ChinaMapFrame(wx.Frame):
    def __init__(self, parent=None, title="中國(guó)地圖展示"):
        # 設(shè)置框架為全屏大小
        screen_width, screen_height = wx.GetDisplaySize()
        super().__init__(parent, title=title, size=(screen_width, screen_height))
 
        # 創(chuàng)建一個(gè)垂直的sizer來(lái)管理布局
        sizer = wx.BoxSizer(wx.VERTICAL)
 
        # 創(chuàng)建WebView并將其添加到sizer,使其完全展開(kāi)
        self.browser = wx.html2.WebView.New(self)
        sizer.Add(self.browser, proportion=1, flag=wx.EXPAND | wx.ALL, border=0)
 
        # 設(shè)置sizer和布局
        self.SetSizer(sizer)
        self.Layout()
        self.Centre()
        self.Maximize(True)  # 最大化以確保全屏
        self.Show()
 
        # 創(chuàng)建并加載中國(guó)地圖
        self.create_china_map()
 
    def create_china_map(self):
        """創(chuàng)建上海地圖并在WebView中顯示"""
        logging.debug("開(kāi)始創(chuàng)建上海地圖")
 
        # 上海示例數(shù)據(jù)(替換為您自己的實(shí)際數(shù)據(jù))
        shanghai_districts = [
            "黃浦區(qū)", "徐匯區(qū)", "長(zhǎng)寧區(qū)", "靜安區(qū)", "普陀區(qū)", "虹口區(qū)", "楊浦區(qū)", "閔行區(qū)",
            "寶山區(qū)", "嘉定區(qū)", "浦東新區(qū)", "金山區(qū)", "松江區(qū)", "青浦區(qū)", "奉賢區(qū)", "崇明區(qū)"
        ]
        shanghai_values = [random.randint(30, 120) for _ in range(len(shanghai_districts))]  # 生成隨機(jī)數(shù)據(jù)
        shanghai_data = list(zip(shanghai_districts, shanghai_values))
 
        map_chart = (
            Map(init_opts=opts.InitOpts(
                width="100vw",
                height="100vh",
                theme=ThemeType.LIGHT,
                page_title="上海地圖展示"
            ))
            .add("上海各區(qū)", shanghai_data, "上海", is_map_symbol_show=False, label_opts=opts.LabelOpts(is_show=True))  # 顯示標(biāo)簽
            .set_global_opts(
                title_opts=opts.TitleOpts(title="上海市行政區(qū)域圖"),
                visualmap_opts=opts.VisualMapOpts(
                    min_=0,
                    max_=120,
                    is_piecewise=True,
                    range_color=["#50a3ba", "#eac763", "#d94e5d"],  # 使用 range_color
                    orient="vertical",
                    pos_left="5%",
                    pos_bottom="5%"
                ),
                toolbox_opts=opts.ToolboxOpts(),
                tooltip_opts=opts.TooltipOpts(trigger="item", formatter=": {c}"),
            )
        )
 
        # 生成HTML文件
        html_file = "shanghai_map.html"
        try:
            logging.debug(f"正在渲染上海地圖到 {html_file}")
            map_chart.render(path=html_file)  # 不要在此處傳遞模板或環(huán)境。Pyecharts將生成完整的HTML。
            logging.debug(f"上海地圖渲染成功到 {html_file}")
        except Exception as e:
            logging.error(f"渲染上海地圖時(shí)出錯(cuò):{e}", exc_info=True)
            return
 
        # 在WebView中加載HTML文件
        file_path = os.path.join(os.getcwd(), html_file)
        normalized_path = file_path.replace('\\', '/')
        file_url = f"file:///{normalized_path}"
        logging.debug(f"正在加載上海URL:{file_url}")
        self.browser.LoadURL(file_url)
 
 
def main():
    app = wx.App(False)
    frame = ChinaMapFrame()
    app.MainLoop()
 
 
if __name__ == "__main__":
    main()
 

代碼說(shuō)明

1.導(dǎo)入必要的庫(kù):該代碼段導(dǎo)入了 wxPython(用于創(chuàng)建 GUI 窗口)、pyecharts(用于生成地圖)、os(用于處理文件路徑)和 logging(用于記錄事件)等必要的庫(kù)。

2.ChinaMapFrame 類:

  • __init__ 方法創(chuàng)建一個(gè)帶有 wx.html2.WebView 的 wx.Frame 窗口,用于顯示交互式地圖。
  • create_china_map 方法使用 Pyecharts 生成上海地圖。它首先定義上海各區(qū)的一些示例數(shù)據(jù),然后使用這些數(shù)據(jù)創(chuàng)建一個(gè) Map 對(duì)象。set_global_opts 方法用于配置地圖的各種選項(xiàng),例如標(biāo)題、視覺(jué)映射和工具箱。最后,將地圖渲染到 HTML 文件,并使用 WebView 加載該文件。

3.main 函數(shù):該函數(shù)創(chuàng)建一個(gè) wx.App 對(duì)象并啟動(dòng)主事件循環(huán),從而顯示地圖窗口。

運(yùn)行結(jié)果

總結(jié)

本文介紹了如何使用 Python 和 Pyecharts 創(chuàng)建交互式上海地圖。Pyecharts 提供了各種各樣的地圖類型和配置選項(xiàng),允許您創(chuàng)建滿足特定需求的高度定制化的地圖。通過(guò)將 Pyecharts 與 wxPython 等 GUI 庫(kù)結(jié)合使用,您可以將交互式地圖無(wú)縫集成到桌面應(yīng)用程序中。

到此這篇關(guān)于使用Python和Pyecharts創(chuàng)建交互式地圖的文章就介紹到這了,更多相關(guān)Python Pyecharts交互式地圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • matplotlib繪制甘特圖的萬(wàn)能模板案例

    matplotlib繪制甘特圖的萬(wàn)能模板案例

    matplotlib是常見(jiàn)的繪圖庫(kù),本文主要介紹了matplotlib繪制甘特圖的萬(wàn)能模板案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • Python庫(kù)SQLAlchemy的簡(jiǎn)介、用法和安裝步驟詳解

    Python庫(kù)SQLAlchemy的簡(jiǎn)介、用法和安裝步驟詳解

    SQLAlchemy是Python強(qiáng)大的ORM庫(kù),支持多數(shù)據(jù)庫(kù),提供連接、模型定義及CRUD操作,內(nèi)置調(diào)試與事務(wù)功能,適合高效數(shù)據(jù)庫(kù)交互,本文給大家介紹Python庫(kù)SQLAlchemy的簡(jiǎn)介、安裝、用法詳解入門教程,感興趣的朋友一起看看吧
    2025-08-08
  • python不使用for計(jì)算兩組、多個(gè)矩形兩兩間的iou方式

    python不使用for計(jì)算兩組、多個(gè)矩形兩兩間的iou方式

    今天小編就為大家分享一篇python不使用for計(jì)算兩組、多個(gè)矩形兩兩間的iou方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • python爬取股票最新數(shù)據(jù)并用excel繪制樹(shù)狀圖的示例

    python爬取股票最新數(shù)據(jù)并用excel繪制樹(shù)狀圖的示例

    這篇文章主要介紹了python爬取股票最新數(shù)據(jù)并用excel繪制樹(shù)狀圖的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • 在PyCharm中三步完成PyPy解釋器的配置的方法

    在PyCharm中三步完成PyPy解釋器的配置的方法

    今天小編就為大家分享一篇在PyCharm中三步完成PyPy解釋器的配置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • python 計(jì)算文件的md5值實(shí)例

    python 計(jì)算文件的md5值實(shí)例

    下面小編就為大家?guī)?lái)一篇python 計(jì)算文件的md5值實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • python調(diào)用java模塊SmartXLS和jpype修改excel文件的方法

    python調(diào)用java模塊SmartXLS和jpype修改excel文件的方法

    這篇文章主要介紹了python調(diào)用java模塊SmartXLS和jpype修改excel文件的方法,涉及Python調(diào)用java模塊的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python報(bào)錯(cuò)TypeError: ‘xxx’ object is not subscriptable

    Python報(bào)錯(cuò)TypeError: ‘xxx’ object is not&n

    本文主要介紹了Python報(bào)錯(cuò)TypeError: ‘xxx’ object is not subscriptable,下面就來(lái)介紹一下該問(wèn)題的解決,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-05-05
  • Python count()函數(shù)實(shí)例詳解

    Python count()函數(shù)實(shí)例詳解

    count() 是Python的內(nèi)置函數(shù),可以「統(tǒng)計(jì)」字符串里指定「字符」或指定字符串出現(xiàn)的「次數(shù)」,這篇文章主要介紹了Python count()函數(shù)詳解,需要的朋友可以參考下
    2023-07-07
  • Python基礎(chǔ)教程之異常詳解

    Python基礎(chǔ)教程之異常詳解

    調(diào)試Python程序時(shí),經(jīng)常會(huì)報(bào)出一些異常,下面這篇文章就來(lái)給大家介紹了關(guān)于Python基礎(chǔ)教程之異常的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2019-01-01

最新評(píng)論

新昌县| 鄂托克旗| 隆德县| 万全县| 桃园市| 绥中县| 建德市| 南涧| 防城港市| 三台县| 雅江县| 乌拉特中旗| 宝清县| 伊宁县| 高陵县| 龙州县| 静乐县| 夏津县| 达拉特旗| 阳山县| 乌兰浩特市| 澎湖县| 大丰市| 钟祥市| 淮阳县| 沂南县| 泰州市| 朝阳市| 平罗县| 涟源市| 肇源县| 襄汾县| 且末县| 开封县| 海兴县| 梓潼县| 万安县| 巨鹿县| 浦城县| 丹凤县| 通江县|