主题
一般问题
遇到技术问题怎么办?
1) 在提问之前,建议先阅读选项手册左侧的导航。在选项手册中,你可以了解 ECharts 有哪些配置项。并且可以在相关组件下找到是否有能实现你所需功能的配置项。
2) 浏览本页面的常见问题。
3) 在官方编辑器、CodePen、CodeSandbox或JSFiddle上创建一个简单示例来复现你的问题。如果无法用代码描述需求,可以尝试提供设计稿或画个草图。
4) 在stackoverflow上提问并附上示例链接。
ECharts 可以免费使用吗?
是的,ECharts 在Apache License 2.0下开源。
坐标轴
坐标轴标签空间不够怎么办?
可以使用interval控制显示多少个标签,设置为0
可以显示所有标签。
或者,你可以设置 axisLabel.rotate 来旋转标签一定的角度。
为什么当你想要把轴放在右侧时不起作用?
你需要将 onZero 设置为 false
。
如何强制显示轴的第一个/最后一个标签?
自 ECharts 版本 3.5.2 起,同时支持 axisLabel.showMinLabel 和 axisLabel.showMaxLabel。它可用于控制是否强制显示第一个/最后一个标签。
图例
如果图例区域与图表重叠,我该怎么办?
你可以设置 grid 来控制图表区域的位置。例如,设置一个较大的 grid.top
来向下移动绘图区域。
我们计划在未来的版本中使布局更智能。
折线图
坐标轴上的刻度似乎与数据不同?
检查你是否设置了 stack
。如果你不想制作堆叠折线图,你应该将其删除。
柱状图
当值很小时,为什么 y 轴刻度会消失?
ECharts 的 3.5 版本已经修复了这个问题。
地图
省份名称在图表上重叠。如何修改名称的位置?
你可以在地图文件(JS 或 JSON)中修改相应省份的 cp
坐标,或修改已通过 echarts.getMap('china')
加载的地图数据。
有关更多详细信息,请参阅 GitHub。
我可以在哪里下载其他国家的地图?
可以从 此处 下载其他国家的地图信息。
如何获取地图的缩放事件?
首先,你需要将系列的 roam 设置为 true
,然后监听 'georoam'
事件。例如
myChart.on('georoam', function (params) {
console.log(params);
});
如何制作我的自定义地图?
ECharts 地图是根据原始坐标 另外编码 的。你可以使用 mapshaper-plus 工具 上传自定义 geojson 文件,然后生成一个可在 Echarts 中使用的地图文件。
百度地图
如何将 ECharts 与百度地图一起使用?
- 包括
echarts.js
、bmap.js
和https://api.map.baidu.com/api?v=3.0&ak=这是你在百度开发平台上获取的访问密钥
。 - 在
option
中设置bmap
,你可以参考这个 示例。 - 如果您需要获取百度地图实例,可以使用
chart.getModel().getComponent('bmap').getBMap()
,然后根据 百度地图API 进行设置。
仪表盘图表
如何设置仪表盘颜色?
可以使用 axisLine.lineStyle.color。
事件处理
如何获取图表点击等事件?
请阅读 官方教程。ECharts 支持的事件类型可以在 相关 API 中找到。
其他
为什么图表不显示?
可以检查以下情况:
echarts.js
是否正常加载。echarts
变量是否存在。- 调用
echarts.init
时,DOM 容器是否有宽度或高度。
在 Vue 中使用 ECharts 时,为什么图表不能正常工作?
- 如果您使用 Vue 3,请避免使用
reactive
和ref
。 - 如果您使用 Vue 2,请避免在
data
函数中声明 ECharts 实例对象或使用Vue.observable
API。
以上所有情况都会导致 ECharts 实例对象被代理为响应式对象,这可能会影响对 ECharts 内部模型属性的访问,并带来一些意外的问题和糟糕的性能。
建议将 ECharts 实例对象声明为普通变量,或使用 shallowRef
/ shallowReactive
/ markRaw
API 来防止实例对象被代理。
另请参阅 #17723 和 Vue 文档中的使用注意事项。
是否有更多学习 ECharts 的资源?
请参阅 awesome-echarts 了解更多相关项目和资源。