欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用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 允許開發(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)試問題
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來管理布局
        sizer = wx.BoxSizer(wx.VERTICAL)
 
        # 創(chuàng)建WebView并將其添加到sizer,使其完全展開
        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("開始創(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()
 

代碼說明

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)題、視覺映射和工具箱。最后,將地圖渲染到 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)建滿足特定需求的高度定制化的地圖。通過將 Pyecharts 與 wxPython 等 GUI 庫(kù)結(jié)合使用,您可以將交互式地圖無縫集成到桌面應(yīng)用程序中。

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

相關(guān)文章

  • python連接mongodb集群方法詳解

    python連接mongodb集群方法詳解

    這篇文章主要介紹了python連接mongo集群方法詳解,需要的朋友可以參考下
    2020-02-02
  • Django框架序列化與反序列化操作詳解

    Django框架序列化與反序列化操作詳解

    這篇文章主要介紹了Django框架序列化與反序列化操作,結(jié)合實(shí)例形式詳細(xì)分析了Django框架Serializer類操作對(duì)象序列化及反序列化相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-11-11
  • Python繪制數(shù)據(jù)動(dòng)態(tài)圖的方法詳解

    Python繪制數(shù)據(jù)動(dòng)態(tài)圖的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語(yǔ)言繪制好看的數(shù)據(jù)動(dòng)態(tài)圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下
    2022-07-07
  • python使用PySimpleGUI設(shè)置進(jìn)度條及控件使用

    python使用PySimpleGUI設(shè)置進(jìn)度條及控件使用

    PySimpleGUI是一個(gè)在tkinter基礎(chǔ)上的,足夠簡(jiǎn)單,方便,pythonic的GUI庫(kù).本文給大家介紹python使用PySimpleGUI設(shè)置進(jìn)度條的方法及進(jìn)度條控件使用代碼,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • Python 解碼Base64 得到碼流格式文本實(shí)例

    Python 解碼Base64 得到碼流格式文本實(shí)例

    今天小編就為大家分享一篇Python 解碼Base64 得到碼流格式文本實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python實(shí)現(xiàn)數(shù)字的格式化輸出

    Python實(shí)現(xiàn)數(shù)字的格式化輸出

    這篇文章主要介紹了Python如何實(shí)現(xiàn)數(shù)字的格式化輸出,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • pandas之關(guān)于DataFrame數(shù)據(jù)類型超好用的方法

    pandas之關(guān)于DataFrame數(shù)據(jù)類型超好用的方法

    這篇文章主要介紹了pandas之關(guān)于DataFrame數(shù)據(jù)類型超好用的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python基于回溯法子集樹模板解決馬踏棋盤問題示例

    Python基于回溯法子集樹模板解決馬踏棋盤問題示例

    這篇文章主要介紹了Python基于回溯法子集樹模板解決馬踏棋盤問題,簡(jiǎn)單描述了國(guó)際象棋馬踏棋盤問題,并結(jié)合實(shí)例形式分析了Python使用回溯法子集樹模板解決馬踏棋盤問題的具體步驟與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2017-09-09
  • 一文教會(huì)你使用win10實(shí)現(xiàn)電腦的定時(shí)任務(wù)執(zhí)行

    一文教會(huì)你使用win10實(shí)現(xiàn)電腦的定時(shí)任務(wù)執(zhí)行

    這篇文章主要介紹了一文教會(huì)你使用win10實(shí)現(xiàn)電腦的定時(shí)任務(wù)執(zhí)行,利用Windows任務(wù)計(jì)劃程序創(chuàng)建定時(shí)執(zhí)行自定義腳本的步驟,包括配置環(huán)境、編寫腳本、新建任務(wù)文件夾、設(shè)置觸發(fā)器、編輯任務(wù)信息以及手動(dòng)運(yùn)行測(cè)試,需要的朋友可以參考下
    2024-09-09
  • Python中正則表達(dá)式對(duì)單個(gè)字符,多個(gè)字符和匹配邊界等使用

    Python中正則表達(dá)式對(duì)單個(gè)字符,多個(gè)字符和匹配邊界等使用

    這篇文章主要介紹了Python中正則表達(dá)式對(duì)單個(gè)字符,多個(gè)字符和匹配邊界等使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論