数据可视化
1 folium绘制热力图
import os
import folium
import webbrowser
import pandas as pd
from folium.plugins import HeatMap
data=pd.read_excel("lian.xlsx") #读取数据
data['heatmap']=1 #增加一列热度
data=(data[['lat','lng','heatmap']].values.tolist()) #抽取lat,lng(经纬度),heatmap
first_gps = data[0][:-1] # 路线开始的经纬坐标
m = folium.Map(first_gps, zoom_start=12) #定义开始的经纬点,地图大小12, tiles='stamentoner'地图是灰色
area=[ #定义要北京各区标记点的经纬度坐标
[39.9,116.4,"北京市"],
[39.9,116.38,"天安门"],
[39.93,116.42,"东城区"],
[39.92,116.37,"西城区"],
[39.88,116.43,"崇文区"],
[39.87,116.35,"宣武区"],
[39.92,116.43,"朝阳区"],
[39.85,116.28,"丰台区"],
[39.9,116.22,"石景山区"],
[39.95,116.3,"海淀区"],
[39.93,116.1,"门头沟区"],
[39.75,116.13,"房山区"],
[39.92,116.65,"通州区"],
[40.13,116.65,"顺义区"],
[40.22,116.23,"昌平区"],
[39.73,116.33,"大兴区"],
[40.32,116.63,"怀柔区"],
[40.13,117.12,"平谷区"],
[40.37,116.83,"密云县"],
[40.45,115.97,"延庆县"]
]
for area in area:
folium.Marker(area[:-1], popup=str(area[-1]),icon=folium.Icon(color='black')).add_to(m)
# popup:是显示的文字,icon:是标记的颜色
HeatMap(data).add_to(m) #添加热力图
m.save(os.path.join('test003.html')) #将结果以HTML形式保存到当前项目目录
webbrowser.open("test003.html") #打开该HTML
2 3D柱状图
from example.commons import Faker
from pyecharts import options as opts
from pyecharts.charts import Bar3D
import random,pandas as pd
def bar3d_base() -> Bar3D:
data = pd.read_excel("lian.xlsx")
a=((data['site'].str.split('')).str[1:5]).value_counts() # 对一列中相同数据进行统计,
#(data['site'].str.split('')).str[1:5]这个是因为我的城市位置不规则,所以通过字符串分割的方式
c = (Bar3D()
.add(
"",
[[(aa), bb, int(cc)] for aa, bb, cc in zip( a.index, range(len(a)), a.values)],
#定义 X ,Y ,Z注意Z一定要是int型
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(max_=10),
title_opts=opts.TitleOpts(title="Bar3D-基本示例"),
)
)
c.render()
bar3d_base()
推荐一个博客:
https://pyecharts.org/#/zh-cn/basic_charts?id=pie:饼图