Echarts可视化教程(六)——标题与图例组件


任务描述

本关任务:按照要求绘制柱状图。

相关知识

本关将介绍Echart中的标题和图例组件。

标题组件

标题组件就是图像的标题,它用来概述图像表达的内容。

Echarts中,绘制组件都是通过对组件属性的配置来实现的,标题也不例外,所以我们先来了解下标题组件的属性项以及属性项对应属性的值。

属性名字属性默认值属性含义
showtrue是否展示标题组件
text''主标题,可以使用'\n'来实现换行
link''主标题文本超链接
target'blank'指定窗口打开主标题超链接,可选selfblank
subtext''副标题文本超链接
subtarget'blank'指定窗口打开副标题超链接,可选selfblank
x'left'标题左上角横坐标,可以是具体数字,也可以是leftcenter 、right
y'top'标题左上角纵坐标,可以是具体数字,也可以是topcenter 、bottom
textAlign'tuto'水平对齐方式,可选autoleftrightcenter
backgroudColor'transparent'标题背景颜色
borderWidth0标题的边框线的宽度
borderColor'#ccc'标题的边框线的颜色
padding5标题内边距

很明显可以看出,这里面的很多属性借用了HtmlCss中的基本概念,比如targetHtml中超链接的属性。这也告诉我们,知识是相通的。

通过一个例子学习下如何使用这些属性:

 
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>ECharts</title>
  6. <!-- 引入 echarts.js -->
  7. <script type="text/JavaScript" src="../static/echarts.min.js"></script>
  8. <body>
  9. <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
  10. <div id="main" style="width: 600px;height:400px;"></div>
  11. <script type="text/javascript">
  12. var myChart = echarts.init(document.getElementById('main'));
  13. myChart.setOption({
  14. grid:{
  15. x:30,
  16. width:'100%',
  17. height:'60%'
  18. },
  19. title : {
  20. show : true,
  21. subtext : '前五大岛',
  22. target: 'blank',
  23. subtarget: 'blank',
  24. textAlign : 'center',
  25. padding: 5,
  26. backgroundColor: '#5ff',
  27. borderColor: '#444',
  28. borderWidth: 3,
  29. left: '50%',
  30. text : "世界岛屿面积排名"//标题
  31. },
  32. tooltip : {
  33. },
  34. xAxis : [
  35. {
  36. show:true,
  37. type : 'category',//表示x轴的每一项由几组数据组成
  38. data : ['格林兰岛','新几内亚岛','加里曼丹岛','马达加斯加岛','巴芬岛']//x轴标题
  39. }
  40. ],
  41. yAxis : [
  42. {
  43. type : 'value'//每一项都是数据
  44. }
  45. ],
  46. series : [
  47. {
  48. type:'bar',//表示柱状图
  49. data:[216, 78, 74, 58, 50]//数据
  50. }
  51. ]
  52. });
  53. </script>
  54. </body>
  55. </html>

最终的效果如下所示:

图  1


图 1 设置复杂的标题组件绘制出来的柱状图

图例组件

图例组件的作用是:标识图像中不同的颜色的具体含义,是对图的附加说明。和标题组件类似,图例组件的个性化配置也是通过设置它的属性来实现的,它的属性如下所示:

属性名字属性默认值属性含义
showtrue是否展示图例
type'plain'图例的类型,'plain'表示普通的图例,'scroll'表示支持翻页的图例
orient'horizontal''horizontal'表示水平布局,'vertical'表示垂直布局
x'center'图例组件左上角横坐标,可以是具体数字,也可以是leftcenter 、right
y'top'图例组件左上角纵坐标,可以是具体数字,也可以是topcenter 、bottom
backgroudColor'transparent'图例背景颜色
borderWidth0图例的边框线的宽度
borderColor'#ccc'图例的边框线的颜色
padding5图例内边距
itemWidth25图例标记的图形宽度
itemHeight14图例标记的图形高度
data{}图例的数据

看到这里你可能已经发现了,图例组件的很多属性和标题组件一模一样。其实,本质上来说,标题和图例都参考了CSS中的盒模型。

来通过一个例子看下图例组件的使用:

 
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>ECharts</title>
  6. <!-- 引入 echarts.js -->
  7. <script type="text/JavaScript" src="../static/echarts.min.js"></script>
  8. <body>
  9. <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
  10. <div id="main" style="width: 600px;height:400px;"></div>
  11. <script type="text/javascript">
  12. var myChart = echarts.init(document.getElementById('main'));
  13. myChart.setOption({
  14. title : {
  15. text : "某水库一到五月水产品产量"//标题
  16. },
  17. tooltip : {
  18. },
  19. legend: {
  20. show: true, //展示图例
  21. type: 'plain', //普通图例
  22. orient: 'horizontal', //水平图例
  23. x: 'right', //图例水平居于右侧
  24. y: 'top', //图例垂直居于上侧
  25. backgroundColor: '#fffeee', //图例的背景颜色
  26. borderColor: 'red', //图例的边框的颜色
  27. borderWidth: 1, //图例的边框的宽度
  28. padding: 8, //图例的内边距
  29. itemWidth: 30, //每一个图例的宽度
  30. itemHeight: 15, //每一个图例的高度
  31. data : ['鲫鱼','鲤鱼','鲢鱼','鲈鱼','螃蟹'], //图例的具体内容
  32. },
  33. xAxis : [
  34. {
  35. show:true,
  36. type : 'category',//表示x轴的每一项由几组数据组成
  37. data : ['一月','二月','三月','四月','五月']//x轴标题
  38. }
  39. ],
  40. yAxis : [
  41. {
  42. type : 'value'//每一项都是数据
  43. }
  44. ],
  45. series : [
  46. {
  47. name:'鲫鱼',
  48. type:'bar',//表示柱状图
  49. data:[1021, 1090, 960, 789, 854]//数据
  50. },
  51. {
  52. name:'鲤鱼',
  53. type:'bar',//表示柱状图
  54. data:[612, 737, 843, 936, 729]//数据
  55. },
  56. {
  57. name:'鲢鱼',
  58. type:'bar',//表示柱状图
  59. data:[856, 997, 544, 983, 477]//数据
  60. },
  61. {
  62. name:'鲈鱼',
  63. type:'bar',//表示柱状图
  64. data:[747, 912, 960, 523, 834]//数据
  65. },
  66. {
  67. name:'螃蟹',
  68. type:'bar',//表示柱状图
  69. data:[567, 597, 436, 456, 554]//数据
  70. }
  71. ]
  72. });
  73. </script>
  74. </body>
  75. </html>

一般来说,图例的设置中,最常用到的是xy,因为图例的位置很重要,图例既不能挡住标题,也不应该挡住具体的数据。

最后来看下我们设置的这个图例的效果:

图  1


图 2 图例设置参考

编程要求

根据提示,在右侧编辑器BeginEnd之间补充代码,绘制柱状图,数据如下:

年份\种类蔬菜水果肉类禽蛋
2015102891630
2016107861834
2017113911729
2018118952036
2019120972132

柱状图的最终效果如下:

图  1


图 3 柱状图的最终效果

一切以图片为准,下面的要求是图片无法直观展示出的:

  • 柱子未设置样式,采用的默认的样式;
  • 标题的x的属性的值是40,背景颜色是#ffffee,其它都是采用的默认值;
  • 图例的类型是支持翻页的图例,布局方向是水平方向,x值是righty的值是top,背景色是#ffffef,图例的边框宽度是0,背景色是yellow。图例的内边距是1,宽度是30,高度是15。其它未做说明的均采用的是默认值。

测试说明

我们将调用浏览器接口,打开你修改的这段代码生成的网页,并截图获取其中的图像,和正确的图像进行对比,从而判断你补充的程序是否正确,正确将输出:“图像对比一致,恭喜通关!”

同时我们将展示你生成的图像和正确的图像,你可以通过观察图像的方式修改自己尚未通过的代码。

测试输入: 预期输出:图像对比一致,恭喜通关!


开始你的任务吧,祝你成功!

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script type="text/JavaScript" src="../static/jquery.min.js"></script>
    <script type="text/JavaScript" src="../static/echarts.min.js"></script>

<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        var myChart = echarts.init(document.getElementById('main'));
        url = "http://127.0.0.1:8080/static/data.txt";
        /********* Begin *********/
           myChart.setOption({
        title : {
            show :true,
            x:40,
            subtext: '单位(吨)',
            text : "某农场农产品产量",//标题
            backgroundColor:'#ffffee',
        },
        tooltip : {

        },
        legend: {
            show: true, //展示图例
            type: 'scroll', //普通图例
            orient: 'horizontal', //水平图例
            x: 'right', //图例水平居于右侧
            y: 'top', //图例垂直居于上侧
            backgroundColor: '#ffffef', //图例的背景颜色
            borderColor: 'yellow', //图例的边框的颜色
            borderWidth: 0, //图例的边框的宽度
            padding: 1, //图例的内边距
            itemWidth: 30, //每一个图例的宽度
            itemHeight: 15, //每一个图例的高度
            data : ['蔬菜','水果','肉类','禽蛋'], //图例的具体内容
        },
        xAxis : [
          {
              show: true,
              type : 'category',//表示x轴的每一项由几组数据组成
              data : ['2015','2016','2017','2018','2019']//x轴标题
          }
        ],
        yAxis : [
          {
              type : 'value'//每一项都是数据
          }
        ],
        series : [
             {
                name:'蔬菜',
                 type:'bar',//表示柱状图
                 data:[102, 107, 113, 118, 120]//数据
             },
             {
                name:'水果',
                 type:'bar',//表示柱状图
                 data:[89,86,91,95,97]//数据
             },
             {
                name:'肉类',
                 type:'bar',//表示柱状图
                 data:[16,18,17,20,21]//数据
             },
             {
                name:'禽蛋',
                 type:'bar',//表示柱状图
                 data:[30,34,29,36,32]//数据
             },
             
         ]
    });
        /********* End *********/
    </script>
</body>

</html>

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值