extends ../layouts/basic

block variables
    - var pageTitle = 'ECharts FAQ'

block extra_head
    title FAQ - Apache ECharts (incubating)

block content
    nav(class='navbar navbar-default navbar-fixed-top', role="navigation")
        include ../components/nav

    .page-main
        .page-info
            .container
                h1 FAQ
                p 常见问题的解答
                p.page-info-echarts Apache ECharts (incubating)<sup>TM</sup>

        .page-content.single-page#faq-page
            .page-nav
                h4 常见问题
                ul
            .page-detail

                h2#ask-questions 通用问题
                h3 有技术问题怎么办？
                p 1）建议您在提问前，大致阅读一下<a href="https://echarts.apache.org/zh/option.html">配置项手册</a>左侧导航，了解 ECharts 有哪些配置项，并且在相关的组件下查找是否有实现您需要功能的配置项；
                p 2）查看本页常见问题的解答；
                p 3）建议在 <a href="https://gallery.echartsjs.com/editor.html">ECharts Gallery</a> 上添加图表，复现你的问题，如果无法使用代码描述需求，可以尝试提供设计稿或画个草图；
                p 4）推荐在 <a href="https://stackoverflow.com">stackoverflow.com</a>、<a href="https://www.oschina.net/question/tag/echarts">开源中国</a> 或 <a href="https://segmentfault.com/t/echarts">segmentfault.com</a> 等问答平台上提问，附上图表链接。

                h3 ECharts 可以免费商用吗？
                p 可以，ECharts 基于 <a href="./license.html">Apache License 2.0</a> 开源。

                h2#axis 坐标轴
                h3 坐标轴标签显示空间不够怎么办？
                p 可以用 <a href="https://echarts.apache.org/zh/option.html#xAxis.interval">interval</a> 控制每隔多少显示标签，设为 <code>0</code> 则显示所有标签。
                p 或者，可以设置 <a href="https://echarts.apache.org/zh/option.html#yAxis.axisLabel.rotate">axisLabel.rotate</a>，将标签旋转一定角度。

                h3 把坐标轴设置在右侧好像没有效果？
                p 需要将 <a href="https://echarts.apache.org/zh/option.html#yAxis.axisLine.onZero">onZero</a> 设为 <code>false</code> 才行。

                h3 如何强制显示坐标轴第一个/最后一个标签？
                p ECharts 3.5.2 版本起，支持 <a href="https://echarts.apache.org/zh/option.html#xAxis.axisLabel.showMinLabel">axisLabel.showMinLabel</a> 以及 <a href="https://echarts.apache.org/zh/option.html#xAxis.axisLabel.showMaxLabel">axisLabel.showMaxLabel</a>，分别用来控制第一个/最后一个标签是否强制显示，设为 <code>true</code> 则强制显示。
                p 如果不方便更新版本，可以参考<a href="https://gallery.echartsjs.com/editor.html?c=xry06afSje">这个例子</a>实现同样的效果。



                h2#legend 图例 legend
                h3 图例区域太大导致遮挡住图表怎么办？
                p 可以设置 <a href="https://echarts.apache.org/zh/option.html#grid">grid</a> 控制图表区域位置。例如将 <code>grid.top</code> 设置得大一些，可以将绘图区域下移。
                p 在未来的版本中，我们计划会将布局做得更智能，自动处理这些遮挡问题。



                h2#line-chart 折线图
                h3 坐标轴刻度好像和数据不匹配？
                p 请检查一下是否设置了 <code>stack</code>，如果不是想做堆积折线图的话，应该将其去掉。



                h2#bar-chart 柱状图
                h3 为什么数据值很小的时候，y 轴的刻度会消失？
                p ECharts 3.5.2 版本修复了该问题。



                h2#map-chart 地图
                h3 图表上的省份名称重叠，如何修改名称的位置？
                p 可以修改地图文件（JS 或 JSON）中对应省份的 <code>cp</code> 坐标，或者通过 <code>echarts.getMap('china')</code> 修改已加载的地图数据。
                p 更详细的做法请参考：
                    a(href='https://github.com/apache/incubator-echarts/issues/4379#issuecomment-257765948') GitHub

                h3 其他国家的地图在哪里下载？
                p 可以在<a href="https://github.com/echarts-maps/echarts-countries-js">这里</a>下载到其他国家的地图信息。

                h3 如何获取地图的缩放事件？
                p 首先，需要将系列的 <a href="https://echarts.apache.org/zh/option.html#series-map.roam">roam</a> 设置为 <code>true</code>，然后可以监听 <code>'georoam'</code> 事件。例：
                pre
                    code
                        | myChart.on('georoam', function (params) {
                        |    console.log(params);
                        | });
                p 参见这个<a href="https://gallery.echartsjs.com/editor.html?c=xHyqn_rQ6g">完整的例子</a>。

                h3 如何制作自定义地图？
                p ECharts 地图在地图坐标的基础上进行过<a href="https://github.com/apache/incubator-echarts/blob/8eeb7e5abe207d0536c62ce1f4ddecc6adfdf85e/src/util/mapData/rawData/encode.js">额外的编码</a>。可以使用 <a href="https://github.com/giscafer/mapshaper-plus">mapshaper-plus</a> 工具，上传自定义的 geojson 文件，生成 ECharts 可以使用的地图文件。



                h2#baidu-map 百度地图
                h3 如何结合百度地图使用 ECharts？
                ol
                    li 引入 <code>echarts.js</code>、<code>bmap.js</code> 以及 <code>https://api.map.baidu.com/api?v=2.0&ak=这里填在百度开发平台注册得到的 access key</code>；
                    li 在 <code>option</code> 中设置 <code>bmap</code>，参考<a href="https://echarts.apache.org/examples/zh/editor.html?c=effectScatter-bmap">这个例子</a>；
                    li 如需获得百度地图实例，可以通过 <code>chart.getModel().getComponent('bmap').getBMap()</code>，然后根据<a href="https://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html">百度地图 API</a>做进一步设置。
                p <a href="https://gallery.echartsjs.com/explore.html#components=bmap~sort=rank~timeframe=all~author=all">Gallery</a> 上有更多百度地图的例子，可作为参考。



                h2#gauge-chart 仪表盘
                h3 怎么设置仪表盘颜色？
                p 可以使用 <a href="https://echarts.apache.org/zh/option.html#series-gauge.axisLine.lineStyle.color">axisLine.lineStyle.color</a> 设置。



                h2#event 事件处理
                h3 如何获取图表点击等事件？
                p 参考<a href="https://echarts.apache.org/zh/tutorial.html#ECharts%20%E4%B8%AD%E7%9A%84%E4%BA%8B%E4%BB%B6%E5%92%8C%E8%A1%8C%E4%B8%BA">官网教程</a>。ECharts 支持的事件类型请参考<a href="https://echarts.apache.org/zh/api.html#events">相关 API</a>。



                h2#others 其他
                h3 图表为什么不显示？
                p 你可以检查以下情况：
                ul
                    li <code>echarts.js</code> 是否正常被加载；
                    li <code>echarts</code> 变量是否存在；
                    li 调用 <code>echarts.init</code> 的时候，DOM 容器是否有宽高。

                h3 ECharts 有哪些学习资料？
                p 官网是最好的学习平台。此外，在 <a href="https://gallery.echartsjs.com">ECharts Gallery</a> 上学习别人的作品也是一个不错的选择。
                p ECharts 相关项目及资源请参见 <a href="https://github.com/ecomfe/awesome-echarts">awesome-echarts</a>。

                include ../components/inner-footer

block extra_js
    script(type='text/javascript').
        document.getElementById('nav-doc').className = 'active';
