用Python做【游玩攻略】之上海四日游,假期旅游不用愁啦~

article/2025/11/11 9:49:00

导语:

哈喽铁汁们~这不马上元旦吗小假期有准备来个短期旅行(疫情期间还是注意安全尽量不出门)却还没做游玩攻略的友友们这期可不能错过了噢~

这期呢我们就先“去一趟”上海吧~

​​ 人们通常戏称上海为魔都。那么上海魔在哪里呢?这里的魔主要有两层含义。第一是魔力,第二是魔幻。

 先说魔力。上海是我国的金融中心,是我国经济总量第一的城市,是我国人均收入最高的城市,是我国进出口贸易第一的城市,也是我国最开放的城市之一。拼多多、B站、携程、饿了么等知名互联网公司的总部都在上海,腾讯、阿里、美团、头条等在上海都有办公部门。加之上海相比北京宽松的户籍政策,每年吸引着无数打工人来上海追寻梦想。浪奔,浪流,万里滔滔江水永不休。

 再说魔幻。上海是一座奇迹之城,从1843年作为通商口岸开放到如今不过170余年,上海从一个名不见经传的小村落一跃成为中国第一亚洲第二大城市,发展速度可谓奇迹。上海也是一座混沌之城,这里有见证800年暮鼓晨钟的静安寺,近600年历史的城隍庙,历经450余年风雨的豫园,也有外滩的“万国建筑群”,“十里洋场”盛况空前,东方明珠夺目璀璨,亚洲第一高楼高达632米的上海中心大厦。可谓亦中亦西,亦今亦古。

所以说旅游去上海无疑是一个很好的选择~ 

 但是想在在短假期就能打卡上海各大景点的话必须就得出发前就做好游玩攻略噢!下边就是小编用Python做的四日游玩攻略附上完整源码了哦!👇👇希望你们喜欢~

老规矩想领取更多完整源码或Python学习资料点击这行文字即可

上海旅游攻略

上海知名度最高的旅游景点,应该是上海外滩,东方明珠电视塔,以及迪士尼乐园。

此外,豫园、南京路、人民广场、静安寺、新天地、陆家嘴、崇明岛、朱家角、滴水湖、淀山湖、枫泾古镇 等景点也是值得一去的好地方。这么多的景点?该如何规划呢?下面这份上海4日旅游攻略,或许可以帮助到你。😎😎

先上数据

🍒Day1 上海城隍庙旅游区(2小时) → 豫园(1小时) → 南京路步行街(3小时) → 外滩(1小时) 

🍒Day2 中华艺术宫(4小时) → 田子坊(2小时) → 上海新天地(2小时) 

🍒Day3 上海迪士尼度假区(1天) 

🍒Day4 上海杜莎夫人蜡像馆(3小时) → 陆家嘴(2小时) → 东方明珠广播电视塔(2小时)

视频预览:

用Python的游玩攻略

附源码: 

import numpy as np 
import pandas as pd 
import geopandas as gpd 
import shapely 
from shapely import geometry as geo 
from shapely import wkt 
import geopandas as gpd 
import matplotlib.pyplot as plt 
import matplotlib.animation as  animation 
import contextily as ctximport imageio
import os 
from PIL import Imageplt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rcParams['animation.writer'] = 'html'
plt.rcParams['animation.embed_limit'] = 100def rgba_to_rgb(img_rgba):img_rgb = Image.new("RGB", img_rgba.size, (255, 255, 255))img_rgb.paste(img_rgba, mask=img_rgba.split()[3]) return img_rgb def html_to_gif(html_file, gif_file, duration=0.5):path = html_file.replace(".html","_frames")images = [os.path.join(path,x) for x in sorted(os.listdir(path))]frames = [imageio.imread(x) for x in images]if frames[0].shape[-1]==4:frames = [np.array(rgba_to_rgb(Image.fromarray(x))) for x in frames]imageio.mimsave(gif_file, frames, 'gif', duration=duration)return gif_filecmap = [
'#2E91E5',
'#1CA71C',
'#DA16FF',
'#B68100',
'#EB663B',
'#00A08B',
'#FC0080',
'#6C7C32',
'#862A16',
'#620042',
'#DA60CA',
'#0D2A63']*100def trace_map_dance(df,title = "上海经典4日旅行路线",filename = None,figsize = (8,6),dpi = 144,duration = 0.5,anotate_points = ["外滩","上海迪士尼度假区","陆家嘴"]):fig, ax =plt.subplots(figsize=figsize,dpi=dpi)def plot_frame(i):ax.clear()ax.axis("off")k = i//3+1m = i%3dfdata = df.iloc[:k,:].copy()dftmp = df.iloc[:k-1,:].copy()text = dfdata["day"].tolist()[-1]#============================================================#绘制背景#============================================================#设置绘图范围bounds = dfcity.total_bounds # k==1   if 1<k<len(df)+1:bounds = dfplace.query("day=='{}'".format(text)).total_boundsif k>=len(df)+1:bounds = dfplace.total_bounds(xmin,ymin,xmax,ymax) = boundscx = (xmin+xmax)/2.0cy = (ymin+ymax)/2.0dx = max(xmax-xmin,100)dy = max(ymax-ymin,100)if dx/dy<8/6.0:dx = dy*8/6.0else:dy = dx*6.0/8bounds = np.array([min(cx-8000,cx-dx/2.0),min(cy-6000,cy-dy/2.0),max(cx+8000,cx+dx/2.0),max(cy+6000,cy+dy/2.0)])ax.set_xlim(bounds[0]-(bounds[2]-bounds[0])/3, bounds[2]+(bounds[2]-bounds[0])/3)    ax.set_ylim(bounds[1]-(bounds[3]-bounds[1])/3, bounds[3]+(bounds[3]-bounds[1])/3)gaode = 'http://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7'openstreet = "https://{s}.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png"ctx.add_basemap(ax,source=gaode,alpha=0.5)#============================================================#绘制散点#============================================================# 绘制散点图像if len(dftmp)>0:ax.scatter(dftmp["x"],dftmp["y"],s = 100*dftmp["z"]/df["z"].mean(),c = (cmap*100)[0:len(dftmp)],alpha = 0.5,zorder = 3)# 添加注释文字for j,p in enumerate(dftmp.index):px,py,pz = dftmp.loc[p,["x","y","z"]].tolist() if p in anotate_points:ax.annotate(p,xy = (px,py),  xycoords = "data",xytext = (-20,15),fontsize = 10,fontweight = "bold",color = cmap[j], textcoords = "offset points")#绘制轨迹线lines = [dfdata[["x","y"]].values[i:i+2] for i in range(len(dfdata)-1)] for ln in lines[:-1]:x, y = np.transpose(ln)line = plt.Line2D(x,y,color="gray",linestyle="-",linewidth= 2.5)ax.add_artist(line)# 添加标题和排名序号ax.set_title(title,color = "black",fontsize = 12)ax.text(0.13, 0.9, text, va="center", ha="center", alpha=0.5, size = 50,transform = ax.transAxes)# 结尾呈现全局轨迹无动画if i>=3*len(df):for ln in lines[-1:]:x, y = np.transpose(ln)line = plt.Line2D(x,y,color="gray",linestyle="-",linewidth= 2.5)ax.add_artist(line)return 0# 添加注意力动画if m==0:px,py,pz = dfdata["x"][[-1]],dfdata["y"][[-1]],dfdata["z"][-1]p = dfdata.index[-1]+":"+str(pz)+"Hours"ax.scatter(px,py,s = 800*pz/df["z"].mean(),c = cmap[len(dfdata)-1:len(dfdata)],alpha = 0.5,zorder = 4)ax.annotate(p,xy = (px,py),  xycoords = "data",xytext = (-20,15),fontsize = 20,fontweight = "bold",color = cmap[k-1], textcoords = "offset points",zorder = 5)for ln in lines[-1:]:x, y = np.transpose(ln)line = plt.Line2D(x,y,color="gray",linestyle=":",linewidth= 4.5)ax.add_artist(line)if m==1:px,py,pz = dfdata["x"][[-1]],dfdata["y"][[-1]],dfdata["z"][-1]p = dfdata.index[-1]+":"+str(pz)+"Hours"ax.scatter(px,py,s = 400*pz/df["z"].mean(),c = cmap[len(dfdata)-1:len(dfdata)],alpha = 0.5,zorder = 4)ax.annotate(p,xy = (px,py),  xycoords = "data",xytext = (-20,15),fontsize = 15,fontweight = "bold",color = cmap[k-1], textcoords = "offset points",zorder = 5)for ln in lines[-1:]:x, y = np.transpose(ln)line = plt.Line2D(x,y,color="gray",linestyle="--",linewidth= 3.5)ax.add_artist(line)if m==2:px,py,pz = dfdata["x"][[-1]],dfdata["y"][[-1]],dfdata["z"][-1]p = dfdata.index[-1]+":"+str(pz)+"Hours"ax.scatter(px,py,s = 100*pz/df["z"].mean(),c = cmap[len(dfdata)-1:len(dfdata)],alpha = 0.5,zorder = 4)ax.annotate(p,xy = (px,py),  xycoords = "data",xytext = (-20,15),fontsize = 10,fontweight = "bold",color = cmap[k-1], textcoords = "offset points",zorder = 5)for ln in lines[-1:]:x, y = np.transpose(ln)line = plt.Line2D(x,y,color="gray",linestyle="-",linewidth= 2.5)ax.add_artist(line)return 0my_animation = animation.FuncAnimation(fig,plot_frame,frames = range(0,3*len(df)+5),interval = int(duration*1000))if filename is None:try:from IPython.display import HTMLHTML(my_animation.to_jshtml())return HTML(my_animation.to_jshtml())except ImportError:passelse:my_animation.save(filename)return filenamehtml_file = "上海经典4日旅行路线.html"
trace_map_dance(df,filename=html_file)

 end

好了这期分享结束~wo要收工啦!喜欢的铁汁们记得三连(点赞、关注、评论)家人们的支持是小编更新最大的动力🤞💪💪

再小唠叨一下:旅游这系列还会再出的比较世界那么大我们总得去看看不是嘛~


http://chatgpt.dhexx.cn/article/oyeFP788.shtml

相关文章

包学习(一款安卓端小学到高中全部课程精讲APP)

简介 【包学习】是一款拥有小学至高中九个学年的全套学习资料的APP&#xff0c;名校名师重点、难点精讲 软件简单介绍 软件分为首页、必刷课、动态教辅、在学、我的五大模块。 进入软件会让你选择对应的年级&#xff0c;小编这里就以高三年级课程给大家截图演示&#xff0…

学堂在线课程字幕下载

事情起因 学堂在线 工程伦理课程 在线学习,没有课件, 考试的时候可能会不方便,做一解决此类问题 字幕下载 合成为Txt 文件或者word 文件以供学习使用 事情经过 首先想到的是自己写一个爬虫 怕区相应的字幕, 发现是文本形式存储和, 很好做, 但是涉及到登录的cookie信息, 暂时…

课堂派资料PDF文件下载

课堂派资料PDF文件下载 前排提示&#xff0c;本文没有什么技术含量&#xff0c;大佬轻喷 因为暂时要上网课&#xff0c;但是年前走得着急其实是懒 &#xff0c;课本没有带回来&#xff0c;所幸有的老师会发一些课本、习题的PDF到课堂派的“资料”里。但是有的时候会限制不让下…

Python程序开发案例教程PDF,python程序开发案例教程

大家好&#xff0c;本文将围绕Python程序开发案例教程黑马程序员电子版书展开说明&#xff0c;Python程序开发案例教程黑马课后答案是一个很多人都想弄明白的事情&#xff0c;想搞清楚Python程序开发案例教程pdf黑马程序员需要先了解以下几个事情。 1、python软件开发的案例有哪…

文章润色器-文章润色的软件

文章修改润色软件 在如今信息化时代&#xff0c;我们的工作常常涉及到处理或编辑一些文件和文章&#xff0c;其中一项重要的工作是对文章的润色和修改。为了高效地完成这项任务&#xff0c;越来越多的人开始借助文章修改润色软件进行文章修改和润色。本文将介绍一款专业的文章…

ChatGPT vs. 之前版本:性能与表现的对比

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

数据之美----雪球网股票组合分析

简介 因为工作需要&#xff0c;爬了几个大型的网站&#xff0c;练就一身爬取数据和分析数据的功夫。所以&#xff0c;在无聊的时候写了个爬取系统。主要功能是爬取雪球组合的数据&#xff0c;并进行分析&#xff0c;得出一些有价值有潜力的股票代码。实盘到没有测试&#xff0c…

新浪股票接口获取历史数据

这两天做了一个调用新浪股票接口获取实时以及历史股票数据的应用&#xff0c;因为新浪没有公开关于其接口的官方文档&#xff0c;所以通过各种百度差了很多关于新浪股票接口的使用&#xff0c;不过大家基本都是转载或者直接复制&#xff0c;对于实时数据的获取讲的很详细&#…

我问了 ChatGPT 一个问题:我生活在哪个世纪?

我问了 ChatGPT 一个问题&#xff1a;我生活在哪个世纪&#xff1f; ChatGPT 算得上最近科技圈最火的一个话题之一了。如是我也想赶时髦&#xff0c;体验一把 ChatGPT。 访问&#xff1a;https://chat.openai.com/&#xff0c;给了我一个&#xff1a; why? 在 net 上逛了逛…

扎克伯格是学计算机的吗,扎克伯格是犹太人吗?他毕业于哪个院校?

提起扎克伯格大家都十分熟悉&#xff0c;即便不熟悉也应该听说过他的名字&#xff0c;他是某社交网站的创始人&#xff0c;在国外有不少人使用&#xff0c;所以许多人对他都有一定的了解。他曾在三十岁的时候&#xff0c;就拥有了六百亿美金的资产&#xff0c;更是被称为“第二…

【latex论文】IEEE论文模板的使用教程

1. 模板下载 conference&#xff1a;https://www.ieee.org/conferences/publishing/templates.html transaction&#xff1a;https://ieeeauthorcenter.ieee.org/create-your-ieee-article/use-authoring-tools-and-ieee-article-templates/ieee-article-templates/ 2. 模板…

Springer期刊LaTeX模板的一些问题

2022.09.29 新模板放到网盘上了需要自己下载吧&#xff0c;祝大家投稿顺利~ 链接: https://pan.baidu.com/s/1h16YYObgCmG6b0x8ku2OfA?pwd0224 提取码: 0224 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦2022.10.05 这是旧模板&#xff0c;谢谢兄弟们的提醒&am…

【LaTex】IEEE论文作者信息排版

引言 IEEE 会议论文投稿&#xff0c;样例论文作者信息排版如下&#xff1a; 但是给的 LaTex 模板里面渲染的效果却是这样的&#xff1a; 对应的 LaTex 语法如下&#xff1a; \author{\IEEEauthorblockN{Michael Shell} \IEEEauthorblockA{School of Electrical and\\Computer…

Springer出版社Latex模板参考文献列出所有作者

最近投个这个Springer下面一个子期刊&#xff0c;按照提供的Latex模板编写好&#xff0c;提交后因论文格式问题被拒两次&#xff0c;很烦&#xff0c;浪费了大量的时间。其中一个要求如下&#xff1a; References Section: All author names should be written instead of &qu…

Latex学习以及IEEE论文投稿Latex排版经历

** Latex学习以及IEEE论文投稿Latex排版经历 ** 1.工欲善其事必先利其器 我使用的软件是TeXLive2021TEXstudio,读者可以在下面的超链接下载&#xff0c;亲测有效。 TeXLive2021TEXstudio 2.入门视频课 b站上有很多&#xff0c;推荐一个快速入门的视频课&#xff1a; Latex入门…

IEEEtran Latex模板五作者排版问题

1. 问题 针对于IEEEtran类模板&#xff0c;其初始模板给定了6个示例作者&#xff0c;如下&#xff1a; 那 如 果 是 5 个 作 者 的 话 &#xff0c; 怎 么 排 版 呢 &#xff1f; \textcolor{red}{那如果是5个作者的话&#xff0c;怎么排版呢&#xff1f;} 那如果是5个作者的…

IEEE 论文排版之LaTeX模板

说明 主要介绍IEEE LaTeX论文模板的使用。 获取模板 IEEE的所有期刊、会议、杂志的模板都可以从 IEEE Template Selector 页面获得&#xff0c;以期刊 IEEE Transactions on Geoscience and Remote Sensing 为例&#xff0c;在 “Select Publication Type” 界面选择“Trans…

华中科技大学计算机学硕招生人数,2019中国高校研究生招生人数排名公布:招生和扩招最多的是这九所...

原标题&#xff1a;2019中国高校研究生招生人数排名公布&#xff1a;招生和扩招最多的是这九所 随着竞争压力越来越大&#xff0c;近几年更是升起了一股‘考研热’&#xff0c;而当你要决定考研时&#xff0c;一个目标就非常重要。现在&#xff0c;2019考研报名正在火热进行中&…

中科大计算机招非全日制,中国科技大学有非全日制研究生招生吗?

【导读】非全日制研究生是一边工作一边上课的一种研究生学历教育&#xff0c;可以获得双证。那么中国科技大学有非全日制研究生招生吗? 根据在职研究生考试网老师的介绍&#xff0c;中国科技大学是有非全日制研究生招生的。以下是中国科技大学非全日制研究生招生情况介绍&…

广州大学计算机科学与技术录取排名,2021年广州大学专业排名排行榜公布 附招生专业目录及计划...

每个大学都有自己的特色专业&#xff0c;都有自己的重点专业&#xff0c;考生在志愿填报选择专业的时候&#xff0c;应该要了解该校的专业招生目录及排名相关情况&#xff0c;本文现代教育网小编整理了关于2020年广州大学的招生专业排名及招生专业目录相关数据&#xff0c;可供…