双向条形图图表效果如下:

具体代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>双向条形图案例 </title>
  6. <!-- 引入 ECharts 文件 -->
  7. <script src="js/echarts4.0.js" type="text/javascript" charset="utf-8"> </script>
  8. </head>
  9. <body>
  10. <!-- 为 ECharts 准备一个具备大小(宽高)的 容器 -->
  11. <div id="chart1" style="width: 80%;height: 400px;top: 50px;left: 10%;border: 3px solid #FF0000;"> </div>
  12. </body>
  13. </html>
  14. <script type="text/javascript">
  15. // 基于准备好的容器(这里的容器是id为chart1的div),初始化echarts实例
  16. var chart1 = echarts.init( document.getElementById( "chart1"));
  17. var years = [ 2017, 2018];
  18. var myData = [ '本区', '本市', '省内', '省外'];
  19. var dataMan = {
  20. 2017: [ 4500, 5000, 4800, 5500],
  21. 2018: [ 5000, 5800, 5500, 6000],
  22. };
  23. var dataWomen = {
  24. 2017: [ 3500, 4200, 4000, 5200],
  25. 2018: [ 4000, 5000, 4500, 5800],
  26. };
  27. /* option 开始 */
  28. option = {
  29. /* baseOption 开始 */
  30. baseOption: { // baseOption 是一个 『原子option』,options 数组中的每一项也是一个 『原子option』。每个『原子option』中就是ECharts文档中描述的各种配置项。
  31. // timeline 组件,提供了在多个 ECharts option 间进行切换、播放等操作的功能。
  32. // timeline 和其他组件有些不同,它需要操作『多个option』。 假设,我们把 ECharts 的传统的 option 称为原子option,
  33. // 那么使用 timeline 时,传入 ECharts 的 option 就成为了一个集合多个原子option的复合option。
  34. timeline: {
  35. show: true, // 是否显示 timeline 组件。如果设置为false,不会显示,但是功能还存在。[ default: true ]
  36. type: 'slider', // 这个属性目前只支持为 slider,不需要更改。[ default: 'slider' ]
  37. axisType: 'category', // 轴的类型。[ default: 'time' ], 可选值为:'value' 数值轴,适用于连续数据。'category' 类目轴,适用于离散的类目数据。'time' 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
  38. currentIndex: 0, // 表示当前选中项是哪项, [ default: 0 ]。比如,currentIndex 为 0 时,表示当前选中项为 timeline.data[0](即使用 options[0])。
  39. autoPlay: true, // 表示是否自动播放。[ default: false ]
  40. rewind: false, // 表示是否反向播放。[ default: false ]
  41. loop: true, // 表示是否循环播放。[ default: true ]
  42. playInterval: 2000, // 表示播放的速度(跳动的间隔),单位毫秒(ms)。[ default: 2000 ]
  43. realtime: true, // 拖动圆点的时候,是否实时更新视图。[ default: true ]
  44. controlPosition: 'left', // 表示『播放』按钮的位置。可选值:'left'、'right'。[ default: 'left' ]
  45. zlevel: 0, // 所有图形的 zlevel 值。[ default: 0 ]
  46. z: 2, // 组件的所有图形的z值。控制图形的前后顺序。z值小的图形会被z值大的图形覆盖。z相比zlevel优先级更低,而且不会创建新的 Canvas。
  47. //left: 'auto', // timeline组件离容器左侧的距离。[ default: 'auto' ], left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'left', 'center', 'right'。
  48. //top: 'auto', // timeline组件离容器上侧的距离。[ default: 'auto' ], top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'top', 'middle', 'bottom'。
  49. //right: 'auto', // timeline组件离容器右侧的距离。
  50. //bottom: 'auto', // timeline组件离容器下侧的距离。
  51. padding: 5, // timeline内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。如:[100,20,20,20]
  52. orient: 'horizontal', // 时间线 摆放方式,可选值有:'vertical':竖直放置。'horizontal':水平放置。
  53. inverse: false, // 是否反向放置 timeline,反向则首位颠倒过来。[ default: false ]
  54. symbol: 'emptyCircle', // timeline标记的图形。ECharts 提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
  55. symbolSize: 10, // timeline标记的大小
  56. lineStyle: { // 轴线
  57. show: true, // 是否显示轴线。可以设置为 false 不显示轴线,则可以做出不同的样式效果。[ default: true ]
  58. color: '#fff', // timeline 线的颜色。[ default: '#304654' ]
  59. width: 2, // timeline 线宽。[ default: 2 ]
  60. type: 'solid', // timeline 线的类型。'solid','dashed','dotted'
  61. opacity: 1 // 图形透明度
  62. },
  63. label: { // 轴的文本标签
  64. normal: {
  65. show: true, // 是否显示 label。[ default: true ]
  66. position: 'bottom', // 'auto': 完全自动决定。'left': 贴左边界放置。 当 timline.orient 为 'vertical' 时有效。'right':当 timline.orient 为 'vertical' 时有效。 贴右边界放置。
  67. // 'top': 贴上边界放置。 当 timline.orient 为 'horizontal' 时有效。'bottom': 贴下边界放置。 当 timline.orient 为 'horizontal' 时有效。
  68. // number: 指定某个数值时,表示 label 和轴的距离。为 0 时则和坐标轴重合,可以为正负值,决定 label 在坐标轴的哪一边。
  69. color: '#fff', // timeline.lable文字的颜色。[ default: '#304654' ]
  70. fontSize: 12, // timeline.lable文字的字体大小
  71. interval: 'auto', // label 的间隔。当指定为数值时,例如指定为 2,则每隔两个显示一个 label。[ default: 'auto' ]
  72. rotate: 0, // label 的旋转角度。正值表示逆时针旋转。[ default: 0 ]
  73. backgroundColor: 'transparent', // 文字块背景色。[ default: 'transparent' ]默认透明
  74. formatter: '{value}年份', // 刻度标签的内容格式器,支持字符串模板和回调函数两种形式。[ default: null ]
  75. },
  76. },
  77. checkpointStyle: { // 『当前项』(checkpoint)的图形样式。
  78. symbol: 'circle', // timeline.checkpointStyle 标记的图形。
  79. symbolSize: 13, // timeline.checkpointStyle 标记的大小
  80. color: '#FFF68F', // timeline组件中『当前项』(checkpoint)的颜色。[ default: '#c23531' ]
  81. borderWidth: 2, // timeline组件中『当前项』(checkpoint)的边框宽度。
  82. borderColor: '#FFF68F', // timeline组件中『当前项』(checkpoint)的边框颜色。[ default: 'rgba(194,53,49, 0.5)' ]
  83. animation: true, // timeline组件中『当前项』(checkpoint)在 timeline 播放切换中的移动,是否有动画。[ default: true ]
  84. animationDuration: 500, // timeline组件中『当前项』(checkpoint)的动画时长。[ default: 300 ]
  85. animationEasing: 'backln' // timeline组件中『当前项』(checkpoint)的动画的缓动效果。不同的缓动效果可以参考 缓动示例。
  86. },
  87. controlStyle: { // 『控制按钮』的样式。『控制按钮』包括:『播放按钮』、『前进按钮』、『后退按钮』。
  88. show: true, // 是否显示『控制按钮』。设置为 false 则全不显示。[ default: true ]
  89. showPlayBtn: true, // 是否显示『播放按钮』。[ default: true ]
  90. showNextBtn: true, // 是否显示『前进按钮』。[ default: true ]
  91. showPrevBtn: true, // 是否显示『后退按钮』。[ default: true ]
  92. color: '#fff', // 按钮颜色。[ default: '#304654' ]
  93. borderColor: '#fff', // 按钮边框颜色。[ default: '#304654' ]
  94. borderWidth: 1, // 按钮边框线宽。
  95. itemSize: 15, // 『控制按钮』的尺寸,单位为像素(px)。[ default: 22 ]
  96. itemGap: 12, // 『控制按钮』的间隔,单位为像素(px)。[ default: 12 ]
  97. position: 'left' // 『控制按钮』的位置。[ default: 'left' ], 当 timeline.orient 为 'horizontal'时,'left'、'right'有效。当 timeline.orient 为 'horizontal'时,'left'、'right'有效。
  98. },
  99. /*emphasis: { // 高亮样式 (包括 label,itemStyle,checkpoint,controlStyle)
  100. label: {
  101. },
  102. itemStyle: {
  103. },
  104. checkpoint: {
  105. },
  106. controlStyle: {
  107. }
  108. },*/
  109. // timeline 数据。Array 的每一项,可以是直接的数值。 如果需要对每个数据项单独进行样式定义,则数据项写成 Object。Object中,value属性为数值。
  110. data: [], // timeline.data 中的每一项,对应于 options 数组中的每个 option。
  111. },
  112. backgroundColor: '#000', // 背景色
  113. title: {
  114. text: '男女平均月收入对比', // 标题文本
  115. top: '3%',
  116. left: '2%', // 标题距左侧距离
  117. textStyle: { // 标题文本样式
  118. color: '#fff',
  119. fontSize: 18
  120. },
  121. },
  122. legend: { // 图例
  123. top: '5%', // 图例距离顶部距离
  124. left: 'center', // 图例距离左侧距离(此处水平居中)
  125. textStyle: { // 图例文本样式
  126. color: '#fff',
  127. },
  128. data: [ '男士', '女士'] // 图例的数据数组,一般对应系列名称,即 series.name
  129. },
  130. tooltip: { // 提示框
  131. show: true,
  132. trigger: 'axis',
  133. axisPointer: { // 坐标轴指示器配置项。
  134. type: 'shadow', // 'line' 直线指示器;'shadow' 阴影指示器.
  135. },
  136. formatter: '{b}<br/>{a}: {c}元' // 提示框所提示的文本内容
  137. },
  138. // 网格grid区域
  139. grid: [{
  140. show: false, // 男士grid区域
  141. left: '4%',
  142. top: '15%',
  143. bottom: '20%',
  144. containLabel: true, // grid 区域是否包含坐标轴的刻度标签。
  145. width: '42%', // grid 组件的宽度。默认自适应。
  146. }, {
  147. show: false, // 中间区域(本区,本市,省内,省外)
  148. left: '51.7%',
  149. top: '20%',
  150. bottom: '20%',
  151. //width: '10%',
  152. tooltip: {
  153. show: false // 中间部分的提示框不显示也没必要显示
  154. }
  155. }, {
  156. show: false, // 女士grid区域
  157. right: '4%',
  158. top: '15%',
  159. bottom: '20%',
  160. containLabel: true, // grid 区域是否包含坐标轴的刻度标签。
  161. width: '42%', // grid 组件的宽度。默认自适应。
  162. }, ],
  163. // X轴线配置
  164. xAxis: [{ // 左侧区域
  165. gridIndex: 0, // x 轴所在的 grid 的索引,默认位于第一个 grid。[ default: 0 ]
  166. type: 'value', // 轴线类型: 数值轴
  167. position: 'top', // 轴线位置(此处位于顶部)
  168. inverse: true, // 是否是反向坐标轴.[ default: false ]
  169. axisLine: {
  170. show: false, // 轴线不显示
  171. },
  172. axisTick: {
  173. show: false, // 轴线刻度不显示
  174. },
  175. axisLabel: { // 轴线刻度标签
  176. show: true, // 显示刻度标签
  177. textStyle: { // 标签样式
  178. color: '#fff',
  179. fontSize: 12
  180. },
  181. },
  182. splitLine: { // 垂直于X轴的分隔线
  183. show: true, // 显示分隔线
  184. lineStyle: { // 分隔线样式
  185. color: '#fff',
  186. width: 1,
  187. type: 'solid',
  188. },
  189. },
  190. // 强制设置坐标轴分割间隔
  191. interval: 2000,
  192. min: 0, // 最小值
  193. max: 8000 // 最大值
  194. },
  195. { // 中间区域
  196. gridIndex: 1,
  197. show: false, // 中间部分不显示X轴
  198. },
  199. { // 右侧区域
  200. gridIndex: 2,
  201. type: 'value',
  202. position: 'top',
  203. inverse: false, // 是否是反向坐标轴.[ default: false ]
  204. axisLine: {
  205. show: false,
  206. },
  207. axisTick: {
  208. show: false,
  209. },
  210. axisLabel: {
  211. show: true,
  212. textStyle: {
  213. color: '#fff',
  214. fontSize: 12
  215. },
  216. },
  217. splitLine: {
  218. show: true,
  219. lineStyle: {
  220. color: '#fff',
  221. width: 1,
  222. type: 'solid',
  223. },
  224. },
  225. // 强制设置坐标轴分割间隔
  226. interval: 2000,
  227. min: 0, // 最小值
  228. max: 8000 // 最大值
  229. }, ],
  230. // Y轴线配置
  231. yAxis: [{ // 左侧区域
  232. gridIndex: 0, // y 轴所在的 grid 的索引,默认位于第一个 grid。[ default: 0 ]
  233. type: 'category', // 轴线类型: 类目轴
  234. // 类目轴中 boundaryGap 可以配置为 true 和 false。默认为 true,这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带(band)中间。
  235. boundaryGap: true, // 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样。
  236. inverse: true, // 是否是反向坐标轴.[ default: false ]
  237. position: 'right', // y轴的位置。'left' or 'right'
  238. axisLine: {
  239. show: false // y轴线不显示
  240. },
  241. axisTick: {
  242. show: true, // y轴线刻度不显示
  243. lineStyle: { // 刻度线样式
  244. color: '#fff'
  245. }
  246. },
  247. axisLabel: {
  248. show: false, // 刻度标签不显示
  249. },
  250. data: myData // Y轴(这里是类目轴)的类目数据
  251. },
  252. {
  253. gridIndex: 1, // 中间区域
  254. type: 'category',
  255. boundaryGap: true,
  256. inverse: true,
  257. position: 'left', // y轴的位置。'left' or 'right'
  258. axisLine: {
  259. show: false
  260. },
  261. axisTick: {
  262. show: false
  263. },
  264. axisLabel: {
  265. show: true, // 显示中间部分的Y轴刻度标签
  266. textStyle: { // 标签样式
  267. color: '#fff',
  268. fontSize: 12,
  269. },
  270. },
  271. data: myData
  272. },
  273. { // 右侧区域
  274. gridIndex: 2,
  275. type: 'category',
  276. boundaryGap: true,
  277. inverse: true,
  278. position: 'left',
  279. axisLine: {
  280. show: false
  281. },
  282. axisTick: {
  283. show: true,
  284. lineStyle: { // 刻度线样式
  285. color: '#fff'
  286. }
  287. },
  288. axisLabel: {
  289. show: false,
  290. },
  291. data: myData
  292. }],
  293. series: []
  294. },
  295. /* baseOption 结束 */
  296. options: []
  297. };
  298. /* option 结束 */
  299. /* 逐个为配置项中的 data 和 series 赋值 */
  300. for ( var i = 0; i < years.length; i++) {
  301. // 给时间线的 data 赋值
  302. option.baseOption.timeline.data.push(years[i]);
  303. // 根据年份的不同 给左侧,中间,右侧(男士,中间部分,女士)的三个不同系列配置系列列表 series[{},{},{}]
  304. // 此处中间部分的系列不必设置
  305. option.options.push({
  306. series: [
  307. {
  308. name: '男士', // 系列名称
  309. type: 'bar',
  310. barGap: 5, // 柱间距离
  311. barWidth: 10, // 男士柱子宽度
  312. xAxisIndex: 0, // 对应在X轴的grid索引
  313. yAxisIndex: 0, // 对应在Y轴的grid索引
  314. label: {
  315. normal: {
  316. show: true,
  317. position: 'left',
  318. textStyle: { // 柱子上数字样式
  319. color: '#fff',
  320. fontSize: 10,
  321. },
  322. },
  323. emphasis: {
  324. show: true,
  325. position: 'left',
  326. textStyle: { // 柱子上数字样式
  327. color: '#fff',
  328. fontSize: 10,
  329. },
  330. },
  331. },
  332. itemStyle: { // 柱条样式。
  333. normal: {
  334. color: '#3300ff', // 普通状态下柱条颜色
  335. },
  336. emphasis: {
  337. color: '#00ffff', // 普通状态下柱条颜色
  338. },
  339. },
  340. data: dataMan[years[i]], // 系列中的数据内容数组
  341. },
  342. {
  343. name: '女士', // 系列名称
  344. type: 'bar',
  345. barGap: 5, // 柱间距离
  346. barWidth: 10, // 女士柱子宽度
  347. xAxisIndex: 2, // 对应在X轴的grid索引
  348. yAxisIndex: 2, // 对应在Y轴的grid索引
  349. label: {
  350. normal: {
  351. show: true,
  352. position: 'right',
  353. textStyle: { // 柱子上数字样式
  354. color: '#fff',
  355. fontSize: 10,
  356. },
  357. },
  358. emphasis: {
  359. show: true,
  360. position: 'right',
  361. textStyle: { // 柱子上数字样式
  362. color: '#fff',
  363. fontSize: 10,
  364. },
  365. },
  366. },
  367. itemStyle: { // 柱条样式。
  368. normal: {
  369. color: '#FF0000', // 普通状态下柱条颜色
  370. },
  371. emphasis: {
  372. color: '#fe89ff', // 高亮状态下柱条颜色
  373. },
  374. },
  375. data: dataWomen[years[i]], // 系列中的数据内容数组
  376. }
  377. ]
  378. });
  379. }
  380. // 使用刚指定的配置项和数据显示图表
  381. chart1.setOption(option)
  382. </script>

想要使用该图表,只需要  复制以上代码  ,再下载    echarts.js  在页面文件中引入即可.

echarts.js 下载链接:    http://echarts.baidu.com/download.html

echarts双向条形图案例相关推荐

  1. hdc mfc 画扇形图_使用echarts绘制条形图和扇形图

    使用echarts绘制条形图和扇形图 简单举例说明下echarts如何绘制条形图和扇形图 代码示例 echarts绘制条形图和扇形图 var mychart1=echarts.init(documen ...

  2. python图像数据是几维数据_python实现读取类别频数数据画水平条形图案例

    1.数据分组– 频数分布表 环境配置:import pandas as pd import numpy as np import matplotlib.pyplot as plt 按照你设定合适的间隔 ...

  3. Excel学习笔记-图表(双向条形图、甘特图、饼图、往PPT中插入图表)

    目录: 一.制作双向条形图 1.设置主次坐标轴 2.设置条形图方向 3.设置图表背景 二.制作甘特图 1.制作普通甘特图 2.制作动态甘特图 三.饼图美化 1.饼图美化常见设置 2.制作双层饼图 四. ...

  4. 【Python】数据分析.matplotlib.条形图案例处理

    文章目录 数据分析-matplotlib.柱状\条形图案例处理 一.纵向条形图 二.横向条形图 三.柱状图 数据分析-matplotlib.柱状\条形图案例处理 案例一: 假设你获取到了2017年内地 ...

  5. Echarts正负条形图将x轴都设置成正数

    最近在做项目的时候需要用到 Echarts 的正负条形图,但是条形图的左半部分的数值是负数的,但是我们需要他也是正数的,话不多说,先上效果图: 所以需要做如下几步修改: 首先需要修改x轴上面显示为负数 ...

  6. 【ECharts系列|04可视化大屏】ECharts可视化经典案例总结

    收集整理一些ECharts实现可视化大屏效果的一些经典案例,方便在工作的时候及时的响应客户,及修改展示,根据业务需求在此基础修改即可. 第一篇为Echarts入门文档,如果没有Echarts基础,理解 ...

  7. Echarts折线图案例

    问题:重置echarts折线图时,总会出现多个数据的拐点,与实际渲染的数据拐点不符合. 解决: 在实例化echarts后 clear 上一次的图. myEcharts.clear() 案例 impor ...

  8. echarts官方地图案例数据整理

    官方案例 https://echarts.baidu.com/examples/editor.html?c=map-polygon&theme=light geoCoordMap数据 {'澳门 ...

  9. echarts的入门案例

    开发环境 webstorm 开发基本步骤 第一步:引入echarts.js文件(echarts.js) 第二步:准备一个盒子 第三不:初始化echarts的实例化对象 第四步:准备配置项 第五步:将配 ...

最新文章

  1. 添加service到SystemService硬件服务
  2. IOS UIViewController的生命周期
  3. 中石油训练赛 - 数学问题(思维)
  4. 推荐一个好玩的鼠标和键盘使用情况统计软件,完全免费
  5. 动态代理之Cglib浅析
  6. .Net Core应用搭建的分布式邮件系统设计
  7. python数据结构与算法之问题求解
  8. 贪心算法(Greedy Algorithm)
  9. xshell修改编辑文件并保存
  10. Python 2.x vs Python 3.x(四)—— TypeError: unhashable type
  11. 计算机基础(五):堆和栈区别
  12. Windows Mysql报错:Access denied for user ‘root‘ @ localhost useing password no 或者 yes 解决
  13. 开源OA办公平台功能介绍:应用市场之固定资产管理(一)功能设计
  14. 第6课时 语音识别
  15. Scratch之自动走迷宫
  16. web开发中实现页面记忆的几种方式
  17. 为什么要学习凸优化?
  18. 步进电机 高速光耦_光耦的参数以及高速光耦如何选型!-先进光半导体
  19. JVM学习笔记 之 JVM概述
  20. Python3,2行代码添加水印,发朋友圈,图片再也不怕被盗了!!!

热门文章

  1. 使用浏览器工具调试学习网页
  2. 全球反诈骗组织拒绝救援赴柬的台湾民众,背后原因让网友力挺
  3. 以安装 WordPress为例介绍在Xampp中安装Bitnami XAMPP modules
  4. springboot+vue网上零食购物商城网站java
  5. 【HTML5】实现QQ聊天气泡效果
  6. 南邮 | Linux实验五:Linux/C 开发环境 gcc 编译和 make 项目管理
  7. word2007如何从指定页开始设置页码
  8. checkbox 设置单选
  9. 集合框架-List接口
  10. BQ40Z50 量产测试工具