600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 用Python做【游玩攻略】之上海四日游 假期旅游不用愁啦~

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

时间:2024-04-12 08:07:31

相关推荐

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

导语:

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

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

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

先说魔力。上海是我国的金融中心,是我国经济总量第一的城市,是我国人均收入最高的城市,是我国进出口贸易第一的城市,也是我国最开放的城市之一。拼多多、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 imageioimport os from PIL import Imageplt.rcParams['font.family'] = 'sans-serif'plt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falseplt.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','#62','#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./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要收工啦!喜欢的铁汁们记得三连(点赞、关注、评论)家人们的支持是小编更新最大的动力🤞💪💪

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。