legend位置 pyecharts_可视化入门 | pyecharts全局配置项详解

更多文章,请见:
http://mp.weixin.qq.com/mp/homepage?__biz=MzIxODczMDUwOA==&hid=2&sn=7928727456d49032f08ef1fcf0ee719e&scene=18#wechat_redirectmp.weixin.qq.com大家好,我是你们的机房老哥!
计算机绘图是老哥很早就关注的领域,在老哥的设计师朋友们的强烈要求下,打算出几期可视化专题,详细讲讲python绘图那些事。
python可以绘制什么样的图呢?










总之,python的绘图库很多,底层库matplotlib、封装的高级API库Seaborn、bokeh、地理信息可视化basemap、cartopy等。
今天老哥使用的是基于百度开源数据可视化Echarts的pyecharts库。

http://pyecharts.org/#/zh-cn/?id=pyecharts
pyecharts的配色好看,图表类型丰富,交互性强,优雅而简洁,相比于matplotlib更易入门。
快速开始
安装pyecharts
pip install pyecharts
或者可以使用清华镜像提高下载速度
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts
绘制示例图表
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(["美国折耳猫", "虎斑猫", "绅士猫", "波斯猫", "加菲猫", "老鼠"])
bar.add_yaxis("宠物店A", [5, 20, 36, 10, 75, 90])
bar.add_yaxis("宠物店B", [10, 25, 36, 10, 60, 20])
bar.render()

讲解一下上述代码:
首先从pyecharts.charts中调用Bar柱状图。
定义变量bar=Bar()。
bar.add_xaxis()
添加x轴坐标,括号中加入数据列表。
bar.add_yaxis()
添加y轴坐标,第一个元素是类别,第二个列表是数值。例如我们想对比宠物店A和B的数值,只需写两个bar.add_yaxis()即可。
bar.render()
默认在当前目录生成render.html文件。也可以传入路径参数,如
bar.render("mycharts.html")
这样,我们就绘制出了一个最简单的柱状图了。
配置全局项
为什么要设置全局项
在快速开始中,老哥带用6行代码绘制了简单的柱状图。
但是观察可发现,该图没有图例、工具栏、标题。

通过配置全局项,可以更好的设置个性化图表,为图表注入你的灵魂。
如何看懂官方文档

本例中,命令继承自LegendOpts类,所以使用pyecharts.options.LegendOpts()调用。参数配置,以type_举例:
type_: Optional[str] = None,
type_是参数名称,冒号后的Optional[str]代表数据类型,等号后代表传入的默认参数。调用全局配置项代码示例:
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = Bar()
bar.set_global_opts(legend_opts=opts.LegendOpts(is_show=False)
首先导入options选项,并缩写为opts。
bar.set_global_opts()
上述代码调用全局项函数。
opts.LegendOpts(is_show=False)
设置图例项。
set_global_opts()函数可设置配置项如下:
- title_opts——标题
- legend_opts——图例
- tooltip_opts——提示框
- toolbox_opts——工具箱
- brush_opts——区域选择组件
- xaxis_opts——X轴
- yaxis_opts——Y轴
- visualmap_opts——视觉映射
- datazoom_opts——区域缩放
- graphic_opts——原生图形元素组件
- axispointer_opts——坐标轴指示器
标题配置项
bar.set_global_opts(title_opts=opts.TitleOpts(title="老哥示范",title_link="http://pyecharts.org/",subtitle="老哥太强了",pos_left="20%"
))

如上所示,老哥成功设置了主、负标题,并且点击主标题可以超链接到网页。
title_opts = opts.TitleOpts()
上述函数调用标题函数,常用参数如下:
- title——主标题文本,支持使用 n 换行
- title_link——主标题跳转 URL 链接
- title_target——主标题跳转链接方式,默认值是: blank。可选参数:'self', 'blank'。'self'当前窗口打开; 'blank' 新窗口打开
- subtitle——副标题文本,支持使用 n 换行。
- pos_left、pos_right、pos_top、pos_bottom——grid 组件离容器左侧的距离。值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。left也可以是 'left', 'center', 'right'。top 也可以是'top', 'middle', 'bottom'。如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
- padding——标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。
- item_gap——主副标题之间的间距。
图例配置项
bar.set_global_opts(legend_opts=opts.LegendOpts(type_="scroll",is_show=True,orient="vertical",legend_icon="circle"))

legend_opts = opts.LegendOpts()
上述函数调用图例参数,常用参数如下:
- type_——图例的类型,可选值:plain普通图例scroll可滚动翻页图例。
- selected_mode——控制是否可以通过点击图例改变系列的显示状态,默认开启。也可以设成“single”、“multiple”使用单选或多选模式。
- is_show——是否显示图例组件
- orient——图例列表的布局朝向,可选“horizontal”、“vertical”
- pos_left、pos_right、pos_top、pos_bottom——grid 组件离容器左侧的距离。值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。left也可以是 'left', 'center', 'right'。top 也可以是'top', 'middle', 'bottom'。如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
- padding——图例内边距,单位px,默认各方向内边距为5。
- item_gap——图例之间的间距。
视觉映射配置项
bar.set_global_opts(visualmap_opts=opts.VisualMapOpts(is_show=True,type_="color",range_text=("高","低"),range_opacity=80,orient="horizontal",pos_right="20%",pos_top="bottom",split_number=10))

visualmap_opts=opts.VisualMapOpts()
上述函数调用视觉映射参数。
- is_show——映射过渡类型,可选,"color", "size"
- type_——映射过渡类型,可选,"color", "size"
- min_、max_——指定 visualMapPiecewise 组件的最小、大值。range_text两端的文本,如['高', '低']
- orient——如何放置 visualMap 组件。水平horizontal竖直vertical
- pos_left、pos_right、pos_top、pos_bottom——grid 组件离容器左侧的距离。值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。left也可以是 'left', 'center', 'right'。top 也可以是'top', 'middle', 'bottom'。如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。
- is_calculable——是否显示拖拽用的手柄(手柄能拖拽调整选中范围)
- pieces——自定义的每一段的范围,文字,特别的样式。{"min": 900, "max": 1500},{"value": 123, "label": '123(自定义特殊颜色)', "color": 'grey'},表示 value 等于 123 的情况
提示框配置项
bar.set_global_opts(tooltip_opts=opts.TooltipOpts(is_show=True,trigger="axis",trigger_on="click",axis_pointer_type="cross",border_color="#FF0000",border_width=5))

visualmap_opts=opts.VisualMapOpts()
调用提示框配置项。
- is_show:是否显示提示框组件,包括提示框浮层和 axisPointer。
- trigger_on:提示框触发的条件,可选:「mousemove」: 鼠标移动时触发。click': 鼠标点击时触发。'mousemove|click': 同时鼠标移动和点击时触发。'none':不在 'mousemove' 或 'click' 时触发,
- axis_pointer_type:指示器类型。可选'line':直线指示器、'shadow':阴影指示器、'none':无指示器、'cross':十字准星指示器。其实是种简写,表示启用两个正交的轴的 axisPointer。
- background_color:提示框浮层的背景颜色。
- border_color:提示框浮层的边框颜色。
- border_width:提示框浮层的边框宽。
坐标轴配置项
bar.set_global_opts(yaxis_opts=opts.AxisOpts(is_show=True,name="横坐标",is_inverse=True,name_location="middle",name_gap=20))

yaxis_opts=opts.AxisOpts()
xaxis_opts=opts.AxisOpts()
调用坐标轴配置项。
- is_sho:是否显示提示框组件,包括提示框浮层和 axisPointer。
- type:坐标轴类型。可选:'value': 数值轴,适用于连续数据。'category': 类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。'time': 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。'log' 对数轴。适用于对数数据。
- name:坐标轴名称。
- is_inverse:是否反向坐标轴。
- name_location:坐标轴名称显示位置。可选:
- name_gap:坐标轴名称与轴线之间的距离。
- name_rotate:坐标轴名字旋转,角度值。
- max_interval:自动计算的坐标轴最大间隔大小。
初始化配置
from pyecharts.globals import RenderType
from pyecharts.globals import ThemeTypebar = Bar(opts.InitOpts(width="900px",height="500px",page_title="老哥教学",renderer= "svg",theme= "dark"))
常用的参数如上,对画布全局属性进行设置。
width宽度、height高度。要注意width承接字符串,必须写成“...px”的格式。
renderer为渲染风格,只有"canvas","svg"两个选项,据测试,svg清晰度高一些。
theme是图表主题,所有主题如下:
light

dark

white

chalk

essos

infographic

macarons

purple-passion

roma

romantic

shine

vintage

walden

westeros

wonderland

动画配置项
bar = Bar(opts.AnimationOpts(animation=False,animation_duration=1000,animation_threshold=2000,animation_duration_update=30,animation_delay=0))
使用opts.AnimationOpts()加载动画参数,将动画配置在Bar()函数中,相应设置如下表:
animation是否开启动画,默认为 True 开启。
- animation_threshold:是否开启动画的阈值,当单个系列显示的图形数量大于这个阈值时会关闭动画。默认 2000。
- animation_duration:初始动画的时长,默认值为 1000。支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的初始动画效果:
- animation_duration_update:数据更新动画的时长,默认值为 300。 支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的更新动画效果:
- animation_delay:初始动画的延迟,默认值为 0。支持回调函数,可以通过每个数据返回不同的 delay 时间实现更戏剧的初始动画效果。
工具箱配置

bar.set_global_opts(toolbox_opts=opts.ToolboxOpts(is_show=True,orient="vertical",feature=opts.ToolBoxFeatureOpts(save_as_image=opts.ToolBoxFeatureSaveAsImageOpts(type_="jpeg", title="保存为jpeg", icon=image://url, pixel_ratio=2),restore=opts.ToolBoxFeatureRestoreOpts(),data_view=opts.ToolBoxFeatureDataViewOpts(),data_zoom=opts.ToolBoxFeatureDataZoomOpts(),magic_type=opts.ToolBoxFeatureDataViewOpts(),brush=opts.ToolBoxFeatureDataZoomOpts(),))
)
老哥写了一个完整的工具箱配置demo,如上述代码所示。
toolbox_opts=opts.ToolboxOpts()
调整工具箱基本参数,is_show=True显示工具箱、orient="vertical"工具箱垂直。
feature=opts.ToolBoxFeatureOpts()
使用feature参数配置工具箱列表的6大功能:
- save_as_image:保存图片
- restore:还原data_view数据视图
- data_zoom:区域缩放
- magic_type:动态类型切换
- brush:选框组件
你可以配置是否显示该功能、图标、标题文本、点击提示语等。
在上述demo中,老哥以保存图片功能举例:
type_="jpeg"
保存为jpeg图片
title="保存为jpeg"
点击按钮提示语为"保存为jpeg"
icon=image://url
图标,其中 url 为图片的链接
pixel_ratio=2
保存图片的分辨率比例,1为与原容器相同,2则更高
关注老哥,一起充电!
相关文章:

查询Master下的系统表和系统视图获取数据库的信息和简单的渗透测试
在SQL中可以通过查询Master下的系统表(sys)和系统视图(information_schema)获取数据库的信息。SQL2000和SQL2005的结构略有不同。 系统表结构参考系统表详细说明。 系统信息结构图参考:http://dev.mysql.com/doc/refma…

cocos2d-x android 移植 问题
为什么80%的码农都做不了架构师?>>> 由于android系统目前没有将boost加入,这里面使用了大量的STL及C的一些语言特性,导致编译出现令人非常头痛的问题。 1、出现类似的异常函数错误 boost/exception/detail/exception_ptr.hpp:382…

python插入排序演示源码
工作闲暇时间,把写内容过程较好的内容段做个备份,下面的内容内容是关于python插入排序演示的内容,应该能对各朋友也有用处。 def insert_sort(t): for i in xrange(len(t)): key t[i] j i - 1 while j>-1 and t[j]>key:#如果当前值比…

leetcode-215 数组中的第K个最大元素
在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入: [3,2,1,5,6,4] 和 k 2 输出: 5 该题比较简洁的解法,我们使用堆来完成 最小堆:即堆顶为所…

c++ double 只输出五位_c 语言第四章 在控制台上数据的输入和输出
1 数据输出我们之前已经使用过printf()函数来实现数据在控制台上输出#include<stdio.h> int main(){printf("hello world");return 0; }具体的用法是printf("数据模板",数据1,数据2,...)// 数据模板表示输出数据的形式,里面包含占位符,打印的时候使用…

pyQt 每日一练习 -- 登录框
#codingutf-8#第一个练习,登录框import sys from PyQt4 import QtGui,QtCore#登录框 class LoginBox(QtGui.QWidget):def __init__(self):super(LoginBox, self).__init__()self.initUI()def initUI(self):vBoxLayout QtGui.QVBoxLayout()hBoxLayout_1 QtGui.QHBo…

photoshop CS5 Dreamweaver CS5序列号及完美破解方法
adobe photoshop CS5 的序列号(任选一个)1330-1440-1602-3671-9749-78971330-1191-2998-6712-2520-54241330-1367-4285-4928-0630-31071330-1570-9599-9499-8092-82371330-1028-1662-3206-1688-51141330-1631-5733-5042-4138-6389 Adobe Dreamweaver CS…

[原创]Android Monkey 在线日志分析工具开发
[原创]Android Monkey 在线日志分析工具开发 在移动App测试过程中,Monkey测试是我们发现潜在问题的一种非常有效手段,但是Android原生的Monkey有其天然的不足,数据不能有效的去解读,同时也不能提供非常清晰的信息,所以针对这个问题…

leetcode-295 数据流的中位数
中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 3) / 2 2.5 设计一个支持以下两种操作的数据结构: void addNum(int num) - 从数据流中添加一个整数到数…

Servlet开发入门
Servlet是sun公司提供的一门用于开发动态web资源的技术。 Sun公司在其API中提供了一个servlet接口,用户若想开发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤: 编写一个Java类,实现servlet接口。把开…

#串口通信超时处理_简单通信协议
用C语言做物联网网关开发时,经常需要通过串口、485接口等从一些传感器读取数据,由于网关设备和传感器所处的环境复杂多样,电磁干扰等常常会破坏传输的数据,为了确保传输数据的可靠性,通常会采取一些策略,常…

在cmd的方式下,简化mysql的输入的方法
2019独角兽企业重金招聘Python工程师标准>>> 在我的电脑,高级系统设置,环境变量,path 添加运行的mysql.exe的路径。 转载于:https://my.oschina.net/u/779687/blog/140411

Parser Generator Tips翻译(中英对译) by Joshua Xu
You can use the ParserWizard command from the Project menu to help you create initial YACC and Lex skeleton source files.如果需要生成初始的YACC & Lex骨架源文件,可以在系统菜单中,选取Project->ParserWizard。Use the Parser Generato…

leetcode-455 分发饼干
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。…

C++模板详解
参考:C 模板详解(一) 模板:对类型进行参数化的工具;通常有两种形式: 函数模板:仅参数类型不同;类模板: 仅数据成员和成员函数类型不同。目的:让程序员编写…

autocad2007二维图画法_cad怎样绘制简单的二维图形
CAD绘制二维图形非常的简单,大家经常用它来画图,下面是学习啦小编带来关于cad怎样绘制简单的二维图形的内容,希望可以让大家有所收获!cad绘制简单二维图形的方法1、绘图菜单绘图菜单是绘制图形最基本、最常用的方法,其中包含了Aut…

MyEclipse 中配置struts2.2.1的方法
MyEclipse中配置Struts2.2.1版本基本步骤:1,首先就是要建立一个web project项目2,设置jdk和servers路径,如果jdk和servers已经配置ok,跳过这一步骤。在菜单中的window选项中配置jdk和servers对于jdk,点击ja…

BZOJ.5249.[九省联考2018]iiidx(贪心 线段树)
BZOJLOJ洛谷 \(d_i\)不同就不用说了,建出树来\(DFS\)一遍。 对于\(d_i\)不同的情况: Solution 1:xxy tql! 考虑如何把这些数依次填到树里。 首先对于已解锁的节点\(x\)(已解锁是指父节点已经处理完的点,刚开始就是\(fa…

leetcode-376 摆动序列
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。 例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3…

bootstrap3中关于布局的两种样式
container:用.container包裹的内容即可实现居中对齐。注意,由于在各分辨率下面都设置了padding 和 固定宽度,.container不能嵌套。row:栏栅系统是把父容器平均分为12列。注意,row可以被嵌套。 通过下表可以详细查看Boo…

adg oracle 架构_云化双活的架构演进,宁夏银行新核心搭载Oracle 19c投产上线
云和恩墨顺利完成宁夏银行新数据中心数据库平台的建设,包括新数据中心RAC搭建、DG搭建、旧数据中心到新数据中心的数据迁移,以及在整个项目生命周期中的实施规范、性能测试保障、压力测试等。6月12日,宁夏银行数据库完成全部迁移,…

MFC里ON_COMMAND_RANGE消息映射的ID问题
今天在工作中遇到一个问题,一个动态菜单,每个菜单的菜单项ID是我自己定义的,定义如下: #define IDM_SEARCHRECORD0 222240 #define IDM_SEARCHRECORD1 222241 #define IDM_SEARCHRECORD2 222242 #define IDM_SEARCHRECORD3 …

反射拷贝对象的思路:
0 根据构造器创建对象 1.获取传入进来的对象的字段 2.获取字段的类型 3.拼接 set 与get方法 4 获取传入进来的对象的值 并设置给新对象转载于:https://www.cnblogs.com/classmethond/p/10362263.html

leetcode-402 移掉K位数组
给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 输入: num “1432219”, k 3 输出: “1219” 解释: 移除掉三个数字 4, 3, 和 2形成一…

c++ using 前置声明_C++ 类的前置声明
今天在研究C”接口与实现分离“的时候遇到了一个问题,看似很小,然后背后的东西确值得让人深思!感觉在学习的过程中有太多的为什么,而每一个为什么背后都隐藏着一些原理和目的,所以得多问自己”为什么“,这样…

测试用的序列化方法
对于实体,进行底层方法测试的时候,经常逐一赋值很麻烦,网上找到序列化xml方法,感觉挺好用的。 前端调用方法时,将实体序列化写入xml文件 //xml路径string filePath "D:\1.xml";using (System.IO.StreamWrit…
HighChart学习-更新数据data Series与重绘
一:HighChart介绍 基于JQuery的纯JavaScript的图标库,支持各种图表显示,同时还支持Mootools 与Prototype详细版本支持在这里: JQuery 1.3.2 - 1.9.x. 2.0.x for modern browsers Mootools 1.2.5 - 1.4.5 Prototype 1.7 支持目…

shell代码模板
批量ssh登录机器#site_search_hosts 10.4.16.205,10.4.20.87,10.4.20.88,10.4.20.89,10.4.20.90,10.4.20.92,10.4.20.93,10.4.21.51,10.4.21.52,10.4.21.53,10.4.21.54,10.4.33.136,10.4.33.137,10.4.33.138,10.4.33.139,10.4.33.140site_search_hosts10.4.16.205,10.4.20.87,1…

leetcode-55 跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1…
子分类账知识学习(汇总网上比较有用的资料)
子模块和GL之间关联的变化 12i在功能模块上的变化很多,比如,基本每个模块都启用了MOAC特性,新增加了子帐模块,税模块等等很多新的模块,OPM库存和离散库存集成了。不过这些变化中,大部分不是我们需要重点…