- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Pyecharts 中Geo函数常用参数的用法说明由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
pyecharts 是一个用于生成 Echarts 图表的类库。用 Echarts 生成的图可视化效果很不错,pyecharts库是用来与 Python 进行对接,方便在 Python 中直接使用数据生成图.
最新的Pyecharts库版本是v1,且与老版本 v0.5.X 是不兼容的,v0.5.X版本也已不再维护。新旧版本的Geo有着较大改动,本篇均是基于旧版本0.5.11 。
pyecharts的安装说明很简单,也有很多大佬写了过程,本篇不赘述,主要说一下指定版本的问题.
安装pyecharts 。
Pyecharts v1版本的安装可使用pip install pyecharts -U 。
Pyecharts v0.5.X版本的安装可使用pip install pyecharts==0.5.11 。
安装对应的地图拓展 。
pip install echarts-countries-pypkg pip install echarts-china-provinces-pypkg pip install echarts-china-cities-pypkg pip install echarts-china-counties-pypkgpip install echarts-china-misc-pypkg
全球国家地图:echarts-countries-pypkg (1.9MB) 。
中国省级地图:echarts-china-provinces-pypkg (730KB) 。
中国市级地图:echarts-china-cities-pypkg (3.8MB) 。
中国区县地图:echarts-china-counties-pypkg 。
中国大区地图:echarts-china-misc-pypkg(如:华南、华北等) 。
geo=Geo()是画出地图的背景.
Geo(title,subtitle,width,height,title_pos,title_top,title_color,subtitle_color,title_text_size,subtitle_text_size,background_color,page_title,renderer,is_animation)
各参数说明如下.
实际使用过程中,我们其实经常用到的就几个参数,如title,width,height,background_color,只要搞这几个基本就够用了,所有参数都有默认值,这意味着在最极端情况下,直接用Geo()也可以,不过画出来的就是一张白纸罢了.
Init docstring: :param title: 主标题文本,支持换行,默认为 "" :param subtitle: 副标题文本,支持换行,默认为 "" :param width: 画布宽度,默认为 800(px) :param height: 画布高度,默认为 400(px) :param title_pos: 标题距离左侧距离,默认为'left',有'auto', 'left', 'right', 'center'可选,也可为百分比或整数 :param title_top: 标题距离顶部距离,默认为'top',有'top', 'middle', 'bottom'可选, 也可为百分比或整数 :param title_color: 主标题文本颜色,默认为 '#000' :param subtitle_color: 副标题文本颜色,默认为 '#aaa' :param title_text_size: 主标题文本字体大小,默认为 18 :param subtitle_text_size: 副标题文本字体大小,默认为 12 :param background_color: 画布背景颜色,默认为 '#fff' :param page_title: 指定生成的 html 文件中 <title> 标签的值。默认为 'Echarts' :param renderer: 指定使用渲染方式,有 'svg' 和 'canvas' 可选,默认为 'canvas'。 3D 图仅能使用 'canvas'。 :param extra_html_text_label: 额外的 HTML 文本标签,(<p> 标签)。类型为 list,list[0] 为文本内容, list[1] 为字体风格样式(选填)。如 ["this is a p label", "color:red"] :param is_animation: 是否开启动画,默认为 True。V0.5.9+
举例子:
from pyecharts import Geo geo =Geo("Geo地图示例", "副标题",width=500, height=500, title_pos='center',title_top=20, title_color="#2E2E2E", subtitle_color='#aaa',title_text_size=16,subtitle_text_size=12,background_color='#EEEEE8', page_title='Echarts',renderer='canvas',is_animation=True) geo
geo.add_coordinate()的作用就是新增,比如现在调用一张广州地图,现在要在显示一个特定的点“测试1”,像这样的点就必须用add_coordinate新增进去,否则会报错(ValueError: No coordinate is specified for 测试1).
geo.add_coordinate(点名称,经度,纬度),3个参数都是必填项 。
geo.add_coordinate('测试点1',113.40,23.07) 。
geo.add()的作用就是将点展示到上面加载的地图上,add有一大堆的参数,最常用的是series_name、names、value、type、maptype、is_visualmap、visual_range、visual_text_color、symbol_size,其中series_name、names、value、maptype这四个是必填项 。
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。 series_name: str, # 数据项 (坐标点名称) names:list # 数据项 (坐标点值) value: list # Geo 图类型,有 scatter, effectScatter, heatmap, lines 4 种 type: 默认"scatter", # 是否选中图例 is_selected: 默认True, # 标记图形形状,circle,pin,rect,diamon,roundRect,arrow,triangle symbol: 默认circle, # 标记的大小 symbol_size: 默认12, # 系列 label 颜色 color: 默认None, # 是否是多段线,在画 lines 图情况下 is_polyline: 默认 False, # 是否启用大规模线图的优化,在数据图形特别多的时候(>=5k)可以开启 is_large: 默认 False, # 特效尾迹的长度。取从 0 到 1 的值,数值越大尾迹越长。 trail_length:默认 0.2 # 地图选择,如广东、广州、china maptype #不知道什么作用,只知道默认Ture is_random #是否开启鼠标缩放和平移漫游。'scale'缩放、'move'平移、'True'都开启 is_roam:默认True #显示图例条 is_visualmap:默认True #图例条范围 visual_range #图例条颜色 visual_text_color #常态下地图的颜色 geo_normal_color #触发下地图的颜色(鼠标放在地图上) geo_emphasis_color #涟漪的多少,当type="effectScatter"时才有效 effect_scale #显示标签 is_label_show #标签颜色 label_text_color #标签位置(inside,top,bottom,left,right) label_pos:默认"inside" #边界颜色 border_color
举例子 。
from pyecharts import Geo districts=['荔湾区', '花都区', '番禺区','测试点1']value = [ 200, 200,300,400] geo =Geo("Geo地图示例", "副标题",width=500, height=500, title_pos='center',title_top=20, title_color="#2E2E2E", subtitle_color='#aaa',title_text_size=16,subtitle_text_size=12,background_color='#EEEEE8', page_title='Echarts',renderer='canvas',is_animation=True) geo.add_coordinate('测试点1',113.40,23.07)geo.add("系列名1", districts, value,type="effectScatter",is_selected=True,symbol='circle',symbol_size=20,color=None, maptype='广州',is_roam=True,is_visualmap=True, visual_range=[0,500],visual_text_color="#2E2E2E", geo_normal_color="#323c48",geo_emphasis_color='#2a033d', effect_scale=3, is_label_show=True,label_text_color="#00FF00",label_pos="inside" ) geo.render("广州测试2.html")geo
在这里有2个问题还没解决。第1、不知道is_random参数的作用,感觉不管是True或False都没影响;第2、如上图的series_name “系列名1”,不知道如何改变它的位置,如移动到左边右边等.
geo.render()很简单了,就是将地图保存为文件出来,render只有一个参数,就是path路径 。
geo.render("广州测试2.html")
补充:Pyecharts v1 Geo库的一些更新与应用 。
最近在利用Python进行爬虫的过程中,需要对网页中爬取的数据做一些可视化的处理,其中有部分数据是关于地区分布的,在地图上标注出具体的参数分布将使得数据更加的直观与生动.
地图标注的工具我选择使用的是Pyecharts库中Geo,运行在Pycharm下,值得注意的是,最新的Pyecharts库版本是v1, 是最新的版本,且与老版本 v0.5.X 是不兼容的,v0.5.X版本也已不再维护,所以建议以后尽量应用最新的v1版,本文也将在此对其进行一些Geo库的更新应用的说明.
Pyecharts v1版本的安装可使用pip install pyecharts -U,也可直接在Pycharm中安装Pyecharts,其说明文档地址为https://pyecharts.org/#/zh-cn/intro 。
Pyecharts v0.5.X版本的安装可使用pip install pyecharts==0.5.11,其说明文档地址为https://05x-docs.pyecharts.org/#/zh-cn/prepare 。
新版本Pyecharts中的地理图表Geo有着较大的改动,总的一个最直观的更新感受是,新的库没有以前那么繁琐了,应用起来更简单直接。因为本人刚接触Python,很多东西也是刚刚入门,现阶段也只是达到能够初步使用Geo的程度,在探索使用新版本的过程中发现网上关于新板Pyecharts的说明很少,所以在这里将自己遇到的一些问题以及自己的一些见解整理出来,以下的一些说明与理解可能较为粗浅,万望各位读者见谅.
Geo:地理坐标系 。
Geo作为一个地理坐标标注的工具,在功能上新老版本基本是一致的,但在细节上却有着很大的差别,这也导致了新旧代码是完全不通用的.
在v0.5.X版本中在创建geo的过程中是可以对其进行一些基本参数设定的 。
如以说明文档中的例子:
geo = Geo("全国主要城市空气质量", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color="#404a59", )
可以设定主标题,副标题,标题颜色为止,图表大小,背景颜色等.
但在新版本中继续按照这样的格式进行创建时,编译器报错AttributeError: 'str' object has no attribute 'get',没有这样的对象。在新版文档中对Geo是直接进行创建的geo = Geo(),其实这样创建基本也就可以了,但是如果你真的想对其进行更多的参数设置,当然也是可以的.
在新的库中,对Geo的操作统一放在init_opts中,对其进行更改需要统一的对类opts.InitOpts进行修改,这里我们就需要引入from pyecharts import options as opts才能进行调用.
具体的InitOpts包括以下一些参数 。
class InitOpts(BasicOpts): def __init__( self, width: str = "900px", height: str = "500px", chart_id: Optional[str] = None, renderer: str = RenderType.CANVAS, page_title: str = CurrentConfig.PAGE_TITLE, theme: str = ThemeType.WHITE, bg_color: Union[str, dict] = None, js_host: str = "", animation_opts: Union[AnimationOpts, dict] = AnimationOpts(), ): self.opts: dict = { "width": width, "height": height, "chart_id": chart_id, "renderer": renderer, "page_title": page_title, "theme": theme, "bg_color": bg_color, "js_host": js_host, "animationOpts": animation_opts, }
需要注意的是对opt.InitOpts直接进行配置的话,只能对部分参数进行更改,如bg_color等,而width,height等参数是固定的无法修改的,比如如果这样设定 。
geo = Geo(init_opts = opts.InitOpts("aaa", width = 400, height = 200, bg_color = "#404a59"))
将报TypeError: init() got multiple values for argument 'width'多赋值的错误。好在新版本除了提供Opts 配置项作为参数传入,还提供了原生 dict 作为参数配置,所有参数均可以自己任意定义,具体操作代码是 。
geo = Geo(init_opts = {"width":1600,"chart_id":"ceshi","bg_color":"#404a59"})
这里发现了一个奇怪的现象,当更改height参数时,将直接导致地图标注无图像,至今未明白其中的原因.
add_schema是Geo下的一个函数,具体功能是对地图的参数与功能进行一些配置,主要包括有 。
def add_schema( # 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件 maptype: str = "china", # 是否开启鼠标缩放和平移漫游。 is_roam: bool = True, # 当前视角的缩放比例。默认为 1 zoom: Optional[Numeric] = None, # 当前视角的中心点,用经纬度表示。例如:center: [115.97, 29.71] center: Optional[Sequence] = None, # # 标签配置项,参考 `series_options.LabelOpts` label_opts: Union[opts.LabelOpts, dict, None] = None, # 地图区域的多边形 图形样式。 itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] =None, # 高亮状态下的多边形样式 emphasis_itemstyle_opts: Union[opts.ItemStyleOpts, dict,None] = None, # 高亮状态下的标签样式。 emphasis_label_opts: Union[opts.LabelOpts, dict, None] =None,):
这里我只使用过maptype,zoom,label_opts的设置,具体设置如下 。
geo.add_schema(maptype = "china", zoom = 1, label_opts = opts.LabelOpts(is_show=True))
maptype可替换成世界地图,省份地图等,地图资源可通过以下 。
pip install echarts-countries-pypkgpip install echarts-china-provinces-pypkgpip install echarts-china-cities-pypkgpip install echarts-china-counties-pypkgpip install echarts-china-misc-pypkg
zoom是缩放设置,label_opts是标签设置,如同1中的设置,这里也是可以通过原生dict进行自定义设置的.
Geo中可以自己增加需要标注的坐标点,通过设置地点,经度,纬度这三个参数即可完成添加.
def add_coordinate( # 坐标地点名称 name: str, # 经度 longitude: Numeric, # 纬度 latitude: Numeric,)
这个函数和旧版是一致的,应用也非常简单,此处不再多加赘述,举一个简单的例子 。
geo.add_coordinate("标注地点", 120, 80)
这是Geo中最主要的函数模块,可供设置的参数类型也比较多,新版的add函数结构与以前相比也有较大的改动,相关的参数如下所示 。
def add( # 系列名称,用于 tooltip 的显示,legend 的图例筛选。 series_name: str, # 数据项 (坐标点名称,坐标点值) data_pair: Sequence, # Geo 图类型,有 scatter, effectScatter, heatmap, lines 4 种,建议使用 # from pyecharts.globals import GeoType # GeoType.GeoType.EFFECT_SCATTER,GeoType.HEATMAP,GeoType.LINES type_: str = "scatter", # 是否选中图例 is_selected: bool = True, # 标记图形形状 symbol: Optional[str] = None, # 标记的大小 symbol_size: Numeric = 12, # 系列 label 颜色 color: Optional[str] = None, # 是否是多段线,在画 lines 图情况下 is_polyline: bool = False, # 是否启用大规模线图的优化,在数据图形特别多的时候(>=5k)可以开启 is_large: bool = False, # 特效尾迹的长度。取从 0 到 1 的值,数值越大尾迹越长。默认值 0.2 trail_length: Numeric = 0.2, # 开启绘制优化的阈值。 large_threshold: Numeric = 2000, # 标签配置项,参考 `series_options.LabelOpts` label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(), # 涟漪特效配置项,参考 `series_options.EffectOpts` effect_opts: Union[opts.EffectOpts, dict] = opts.EffectOpts(), # 线样式配置项,参考 `series_options.LineStyleOpts` linestyle_opts: Union[opts.LineStyleOpts, dict] = opts.LineStyleOpts(), # 提示框组件配置项,参考 `series_options.TooltipOpts` tooltip_opts: Union[opts.TooltipOpts, dict, None] = None, # 图元样式配置项,参考 `series_options.ItemStyleOpts` itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,)
其中,新旧版本最大的一个不同是,旧版的地点和值分开配置给attr和value,旧版的典型示例如下 。
from pyecharts import Geo data = [ ("海门", 9), ("鄂尔多斯", 12), ("招远", 12), ("舟山", 12), ("齐齐哈尔", 14), ("盐城", 15)]geo = Geo( "全国主要城市空气质量", "data from pm2.5", title_color="#fff", title_pos="center", width=1200, height=600, background_color="#404a59",)attr, value = geo.cast(data)geo.add("", attr, value, type="effectScatter", is_random=True, effect_scale=5)geo.render()
而新版的add函数将地点和值放在了一个数据项里, 。
geo.add("", [attr, value], type_=ChartType.HEATMAP, symbol_size = 12, label_opts = opts.LabelOpts(is_show=False))
其他一些参数配置大致与以前是一致的,配置方式也可同样参照1中的方式进行.
在运行中发现一个有趣的问题,如一个个对坐标进行显示插入 。
geo.add_coordinate("测试点1", 20, 40)geo.add("haha1", [("测试点1", 60)])geo.add_coordinate("测试点2", 60, 80)geo.add("haha2", [("测试点2", 60)])
这样运行是没有问题的,但如果对列表中的项进行批量的插入,如 。
for i in range(num): geo.add_coordinate(address[i], lng[i], lat[i]) geo.add("", [(address[i],60)])
这样做是会报错的,具体原因不是太明白,无奈只能进行如下修改 。
for i in range(num): geo.add_coordinate(address[i], lng[i], lat[i])geo.add("", [(address[i],60) for i in range(num)])
做了这样的修改后就没有问题了,如果有知道原因的朋友可以留言给我,万分感谢 。
还有一个值得注意的问题是,对中国地图进行标注时,使用的地点不能包含“省”,“市”等,只能使用“江苏”,“浙江”等地名,不然就是无效的.
最后想放一张自己运行生成的标注地图,无奈第一次标记这边的文章,不会添加图片!!! 。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我。如有错误或未考虑完全的地方,望不吝赐教.
原文链接:https://blog.csdn.net/qq_22592457/article/details/98957767 。
最后此篇关于Pyecharts 中Geo函数常用参数的用法说明的文章就讲到这里了,如果你想了解更多关于Pyecharts 中Geo函数常用参数的用法说明的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!