blob: b918f00a1c86908d60990fc658a5c0484a64c8cf [file] [log] [blame]
extends ../layouts/basic
block extra_head
title 特性 - Apache ECharts
block content
nav(class='navbar navbar-default navbar-fixed-top', role="navigation")
include ../components/nav
.page-main
.page-info
.container
h1 特性
p.page-info-echarts Apache ECharts<sup>TM</sup>
.page-content.single-page
.page-nav
h4 特性
ul
.page-detail
p.page-detail-desc ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE9/10/11ChromeFirefoxSafari等),底层依赖矢量图形库 <a href="https://github.com/ecomfe/zrender" target="_blank">ZRender</a>,提供直观,交互丰富,可高度个性化定制的数据可视化图表。
h2#chart-types 丰富的可视化类型
p ECharts 提供了常规的<a href="option.html#series-line" target="_blank">折线图</a>、<a href="option.html#series-bar" target="_blank">柱状图</a>、<a href="option.html#series-scatter" target="_blank">散点图</a>、<a href="option.html#series-pie" target="_blank">饼图</a>、<a href="option.html#series-candlestick" target="_blank">K线图</a>,用于统计的<a href="option.html#series-boxplot" target="_blank">盒形图</a>,用于地理数据可视化的<a href="option.html#series-map" target="_blank">地图</a>、<a href="option.html#series-heatmap" target="_blank">热力图</a>、<a href="option.html#series-lines" target="_blank">线图</a>,用于关系数据可视化的<a href="option.html#series-graph" target="_blank">关系图</a>、<a href="option.html#series-treemap" target="_blank">treemap</a>、<a href="option.html#series-sunburst" target="_blank">旭日图</a>,多维数据可视化的<a href="option.html#series-parallel" target="_blank">平行坐标</a>,还有用于 BI 的<a href="option.html#series-funnel" target="_blank">漏斗图</a>,<a href="option.html#series-gauge" target="_blank">仪表盘</a>,并且支持图与图之间的混搭。
p 除了已经内置的包含了丰富功能的图表,ECharts 还提供了<a href="option.html#series-custom" target="_blank">自定义系列</a>,只需要传入一个<em>renderItem</em>函数,就可以从数据映射到任何你想要的图形,更棒的是这些都还能和已有的交互组件结合使用而不需要操心其它事情。
p 你可以在下载界面下载包含所有图表的构建文件,如果只是需要其中一两个图表,又嫌包含所有图表的构建文件太大,也可以在在线构建中选择需要的图表类型后自定义构建。
h2#dataset 多种数据格式无需转换直接使用
p ECharts 内置的 dataset 属性(4.0+)支持直接传入包括二维表,key-value 等多种格式的数据源,通过简单的设置 encode 属性就可以完成从数据到图形的映射,这种方式更符合可视化的直觉,省去了大部分场景下数据转换的步骤,而且多个组件能够共享一份数据而不用克隆。
p 为了配合大数据量的展现,ECharts 还支持输入 TypedArray 格式的数据,TypedArray 在大数据量的存储中可以占用更少的内存,对 GC 友好等特性也可以大幅度提升可视化应用的性能。
h2#big-data 千万数据的前端展现
p 通过增量渲染技术(4.0+),配合各种细致的优化,ECharts 能够展现千万级的数据量,并且在这个数据量级依然能够进行流畅的缩放平移等交互。
p 几千万的地理坐标数据就算使用二进制存储也要占上百 MB 的空间。因此 ECharts 同时提供了对流加载(4.0+)的支持,你可以使用 WebSocket 或者对数据分块后加载,加载多少渲染多少!不需要漫长地等待所有数据加载完再进行绘制。
img(src="#{cdnPayRoot}/#{ecWWWLang}/images/features/scatterGL.jpg?_v_=#{cdnPayVersion}", width="60%")
<br />
img(src="#{cdnPayRoot}/#{ecWWWLang}/images/features/scatterGL2.jpg?_v_=#{cdnPayVersion}", width="30%")
img(src="#{cdnPayRoot}/#{ecWWWLang}/images/features/scatterGL3.jpg?_v_=#{cdnPayVersion}", width="30%")
h2#mobile 移动端优化
p ECharts 针对移动端交互做了细致的优化,例如移动端小屏上适于用手指在坐标系中进行缩放、平移。 PC 端也可以用鼠标在图中进行缩放(用鼠标滚轮)、平移等。
p 细粒度的模块化和打包机制可以让 ECharts 在移动端也拥有很小的体积,可选的 SVG 渲染模块让移动端的内存占用不再捉襟见肘。
iframe(data-src="#{host}/examples/zh/view.html?c=area-simple&reset=1&edit=1&renderer=svg", width="60%", height="400")
h2#mult-platform 多渲染方案,跨平台使用!
p ECharts 支持以 CanvasSVG4.0+)、VML 的形式渲染图表。VML 可以兼容低版本 IESVG 使得移动端不再为内存担忧,Canvas 可以轻松应对大数据量和特效的展现。不同的渲染方式提供了更多选择,使得 ECharts 在各种场景下都有更好的表现。
p 除了 PC 和移动端的浏览器,ECharts 还能在 node 上配合 node-canvas 进行高效的服务端渲染(SSR)。从 4.0 开始我们还和微信小程序的团队合作,提供了 ECharts 对<a href="https://github.com/ecomfe/echarts-for-weixin" target="_blank">微信小程序</a>的适配!
p 社区热心的贡献者也为我们提供了丰富的<a href="#{host}/zh/download-extension.html" target="_blank">其它语言扩展</a>,比如 Python 的 <a href="https://github.com/pyecharts/pyecharts" target="_blank">pyecharts</a>,R 语言的 <a href="https://github.com/helgasoft/echarty" target="_blank">echarty</a>, Julia 的 <a href="https://github.com/randyzwitch/ECharts.jl" target="_blank">ECharts.jl</a> 等等。
p 我们希望平台和语言都不会成为大家使用 ECharts 实现可视化的限制!
h2#interaction 深度的交互式数据探索
p 交互是从数据中发掘信息的重要手段。“总览为先,缩放过滤按需查看细节”是数据可视化交互的基本需求。
p ECharts 一直在<em>交互</em>的路上前进,我们提供了 <a href="option.html#legend" target="_blank">图例</a>、<a href="option.html#visualMap" target="_blank">视觉映射</a>、<a href="option.html#dataZoom" target="_blank">数据区域缩放</a>、<a href="option.html#tooltip" target="_blank">tooltip</a>、<a href="option.html#brush" target="_blank">数据刷选</a>等开箱即用的交互组件,可以对数据进行多维度数据筛取、视图缩放、展示细节等交互操作。
//- iframe(data-src="#{host}/examples/zh/view.html?c=map-parallel-prices&reset=1&edit=1", width="60%", height="540")
iframe(data-src="#{host}/examples/zh/view.html?c=scatter-matrix&reset=1&edit=1", width="60%", height="540")
h2#visual-mapping 多维数据的支持以及丰富的视觉编码手段
p ECharts 3 开始加强了对多维数据的支持。除了加入了平行坐标等常见的多维数据可视化工具外,对于传统的散点图等,传入的数据也可以是多个维度的。配合视觉映射组件 <a href="option.html#visualMap" target="_blank">visualMap</a> 提供的丰富的视觉编码,能够将不同维度的数据映射到颜色、大小、透明度、明暗度等不同的视觉通道。
iframe(data-src="#{host}/examples/zh/view.html?c=scatter-nutrients-matrix&reset=1&edit=1", width="60%", height="400")
h2#dynamic-data 动态数据
p ECharts 由数据驱动,数据的改变驱动图表展现的改变。因此动态数据的实现也变得异常简单,只需要获取数据,填入数据,ECharts 会找到两组数据之间的差异然后通过合适的动画去表现数据的变化。配合 <a href="option.html#timeline" target="_blank">timeline</a> 组件能够在更高的时间维度上去表现数据的信息。
iframe(data-src="#{host}/examples/zh/view.html?c=scatter-life-expectancy-timeline&reset=1&edit=1", width="60%", height="400")
h2#fancy-effects 绚丽的特效
p ECharts 针对线数据,点数据等地理数据的可视化提供了吸引眼球的特效。
iframe(data-src="#{host}/examples/zh/view.html?c=lines-bmap-effect&reset=1&edit=1", width="60%", height="400")
h2#gl 通过 GL 实现更多更强大绚丽的三维可视化
p 想要在 VR,大屏场景里实现三维的可视化效果?我们提供了基于 WebGL ECharts GL,你可以跟使用 ECharts 普通组件一样轻松的使用 ECharts GL 绘制出三维的地球,建筑群,人口分布的柱状图,在这基础之上我们还提供了不同层级的画面配置项,几行配置就能得到艺术化的画面!
img(src="#{cdnPayRoot}/#{ecWWWLang}/images/features/flowGL-line.jpg?_v_=#{cdnPayVersion}", width="40%")
img(src="#{cdnPayRoot}/#{ecWWWLang}/images/features/buildings-ny.jpg?_v_=#{cdnPayVersion}", width="40%")
<br />
img(src="#{cdnPayRoot}/#{ecWWWLang}/images/features/capetown-taxi.jpg?_v_=#{cdnPayVersion}", width="40%")
img(src="#{cdnPayRoot}/#{ecWWWLang}/images/features/population.jpg?_v_=#{cdnPayVersion}", width="40%")
h2#aria 无障碍访问(4.0+)
p 当我们说到“可视化”的时候,我们往往很自然地将它与“看得⻅”联系在一起,但其 实这是片面的。W3C 制定了无障碍富互联网应用规范集(WAI-ARIAthe Accessible Rich Internet Applications Suite),致力于使得网⻚内容和网⻚应 用能够被更多残障人士访问。
p ECharts 4.0 遵从这一规范,支持自动根据图表配置项智能生成描述,使得盲人可 以在朗读设备的帮助下了解图表内容,让图表可以被更多人群访问!
include ../components/inner-footer
block extra_js
script.
window.lazyLoadOptions = {
elements_selector: 'iframe'
};
script(src='https://fastly.jsdelivr.net/npm/vanilla-lazyload@12.0.0/dist/lazyload.min.js')
script(type='text/javascript').
document.getElementById('nav-doc').className = 'active';