前言
我们知道,在数据可视化中的地图可视化分为map类地图和geo类地图,而现在我将介绍geo类地图,会对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着我来一起学习学习吧!(由于我是一位初学者,若有不对的还望大家多多指教,蟹蟹~)
中文官方文档和社区
1.中文官网文档
它包含pyecharts中各个功能和图形的介绍和代码参数解析。链接如下:
https://pyecharts.org/#/zh-cn/intro
2.社区
它包含各种图形demo的项目案例代码和演示。链接如下:
https://gallery.pyecharts.org/#/README
【工具】查询颜色代码网站
http://tools.jb51.net/color/colorpicker
一、什么是geo类地图?
地图是我们在日常的数据可视化分析中是很常见的一种展示手段,不仅美观而且很大气,尤其是在大屏展示中更是扮演着必不可缺的角色。而geo类地图和map类地图最大的区别在于geo地图擅长画“点”,可以是根据经纬度画出坐标点,也可以根据地区名称画出该地区代表的点。
与map不同在于:
map中add的时候需要添加地图属性’china’,但是geo中只需要额外添加一句:geo.add_schema(maptype=“china”) # 设置地图类型
安装Pyecharts库
我们都知道pyecharts是一种非常强大的绘图python库,绘制的图形非常好看,并且有代表性,不仅仅是地图,还可以绘制条形图、饼图、词云图等等。所以我们现在绘制地图需要先安装pyecharts库,大家可到windows中搜索Anaconda Prompt (anaconda)【或者Win+R——cmd】并打开,使用以下两种任意方法运行即可:
方法一:
pip install pyecharts
方法二(使用清华镜像):
pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple
由于使用map需要在anaconda中下载地图拓展包,请大家下载以下拓展包(新版anaconda已经不需要手动下载):
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
pip install echarts-united-kingdom-pypkg
二、绘制geo类散点地图
从数据结构上看,geo对象接收的数据也是二维数组。
1.引入相关map包
代码如下:
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.faker import Faker
注意:运行代码前请使用正确的解释器(例如)
2.绘制geo类散点地图
代码如下:
c = (
Geo()
.add_schema(maptype="china")
.add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="Geo-基本示例")
)
.render("geo_base.html")
)
效果图可以在VScode运行结果查看,也可以在目录中找到对应的html文件打开效果图(右键选择在浏览器打开或者在页面使用快捷键Ctrl+1)
效果图如下所示:
geo类散点地图的社区代码链接:
https://gallery.pyecharts.org/#/Geo/geo_base
三、geo类地图的点样式设置
由于点样式设置在社区有提供代码,我将不展示涟漪散点地图和热力地图的代码。
1.涟漪散点地图社区代码链接如下:
https://gallery.pyecharts.org/#/Geo/geo_effectscatter
2.热力地图社区代码链接如下:
https://gallery.pyecharts.org/#/Geo/geo_heatmap
四、geo动态轨迹图
1.引入相关map包
代码如下:
from pyecharts import options as opts
from pyecharts.charts import BMap
from pyecharts.globals import ChartType
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType
2.绘制点之间的箭头
首先在中国地图上设置你想要设置的点
代码如下:
c = (
Geo()
.add_schema(maptype="china")
.add(
"",
[("南宁", 1), ("北京", 66), ("湖南", 77), ("重庆", 88), ("四川", 99), ("上海", 111), ("云南", 88)],
type_=ChartType.EFFECT_SCATTER, # 点样式
color="#FF6666",
label_opts=opts.LabelOpts(is_show=True,formatter='{b}') # 配置点的标签
)
其次设置箭头所处于的起始点与终止点。
代码如下:
.add(
"",
[("南宁", "北京"), ("南宁", "湖南"), ("南宁", "重庆"), ("南宁", "四川"), ("南宁", "上海"), ("南宁", "云南")],
type_=ChartType.LINES,
effect_opts=opts.EffectOpts(
symbol='arrow', # 移动点的样式
symbol_size=10,
color="#FFCCCC"
),
linestyle_opts=opts.LineStyleOpts(curve=0.2, # 线条弧度
type_='solid' # 线条类型
),
label_opts=opts.LabelOpts(is_show=False) # 配置线的标签
)
完整代码
from pyecharts import options as opts
from pyecharts.charts import BMap
from pyecharts.globals import ChartType
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType
c = (
Geo()
.add_schema(maptype="china")
.add(
"",
[("南宁", 1), ("北京", 66), ("湖南", 77), ("重庆", 88), ("四川", 99), ("上海", 111), ("云南", 88)],
type_=ChartType.EFFECT_SCATTER, # 点样式
color="#FF6666",
label_opts=opts.LabelOpts(is_show=True,formatter='{b}') # 配置点的标签
)
.add(
"",
[("南宁", "北京"), ("南宁", "湖南"), ("南宁", "重庆"), ("南宁", "四川"), ("南宁", "上海"), ("南宁", "云南")],
type_=ChartType.LINES,
effect_opts=opts.EffectOpts(
symbol='arrow', # 移动点的样式
symbol_size=10,
color="#FFCCCC"
),
linestyle_opts=opts.LineStyleOpts(curve=0.2, # 线条弧度
type_='solid' # 线条类型
),
label_opts=opts.LabelOpts(is_show=False) # 配置线的标签
)
.set_global_opts(title_opts=opts.TitleOpts(title="南宁市Geo线段"))
)
c.render_notebook()
效果图如下所示:
(以下点为我想去旅游的城市哈哈哈哈,大家可随意选择点)
五、根据经纬度绘制点生成局部图
1.引入相关map包
代码如下:
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType
2.根据经纬度绘制点
添加一个坐标点或者绘制某一个点(需要该点的经纬度)
查询经纬度位置 (在浏览器打开,在该地址后面,加上你要查询的地址),再依次设置字体样式。
代码如下:
g = Geo()
g.add_schema(maptype="广西")
g.add_coordinate('兴宁区', 108.6383056640625,23.980397108430427)
g.add(
"",
data_pair = [('兴宁区',10)],
type_=ChartType.EFFECT_SCATTER,
symbol_size=5
)
g.set_series_opts(label_opts = opts.LabelOpts(formatter = '{b}',# 不设置标签格式自动显示纬度数值
font_size = 20
)
)
完整代码:
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType
g = Geo()
g.add_schema(maptype="广西")
g.add_coordinate('兴宁区', 108.6383056640625,23.980397108430427)
g.add(
"",
data_pair = [('兴宁区',10)],
type_=ChartType.EFFECT_SCATTER,
symbol_size=5
)
g.set_series_opts(label_opts = opts.LabelOpts(formatter = '{b}',# 不设置标签格式自动显示纬度数值
font_size = 20
)
)
g.render_notebook()
效果图如下所示:
(以下点为我生活的市区,同学们可随意选择点)
文章来源:https://www.toymoban.com/news/detail-756346.html
总结
以上为我在学习数据可视化中关于geo类地图简单的学习实践,若有问题还请同学们在评论区中指正。文章来源地址https://www.toymoban.com/news/detail-756346.html
到了这里,关于【数据可视化】Python通过Pyecharts库绘制geo类地图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!