flex 柱状图折线图叠加显示

本文展示了一个使用Flex进行多轴图表绘制的例子,包括大盘指数的柱状图和交易量及offer量的折线图。通过设定不同Y轴的数据范围,实现了多组数据在同一图表中的有效展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?xml version="1.0"?>
<mx:Application xmlns:mx=" http://www.adobe.com/2006/mxml">
 <mx:Script>
  <![CDATA[
   import mx.collections.ArrayCollection;
   [Bindable]
   public var data1:ArrayCollection=new ArrayCollection([{date:"10月1日", all:4001.87}, {date:"10月2日", all:4005.74}, {date:"10月3日", all:4002.77}, {date:"10月4日", all:4008.06},]);
   [Bindable]
   public var data2:ArrayCollection=new ArrayCollection([{date:"10月1日", sale:157.59}, {date:"10月2日", sale:158.23}, {date:"10月3日", sale:150.71}, {date:"10月4日", sale:156.88},]);
   [Bindable]
   public var data3:ArrayCollection=new ArrayCollection([{date:"10月1日", offer:124.14}, {date:"10月2日", offer:160.3}, {date:"10月3日", offer:122.71}, {date:"10月4日", offer:136.88},]);
   
  ]]>
 </mx:Script>
 
 <mx:Panel title="多轴图表"
     fontSize="14">
  <!--以柱形图表为基础, 第一类数据来源于data1
  第二类数据来源于data2-->
  <mx:ColumnChart id="myChart"
      showDataTips="true"
      fontSize="14">
   <!--共用X轴,数据来源于data1中的date-->
   <mx:horizontalAxis>
    <mx:CategoryAxis dataProvider="{data1}"
         categoryField="date"/>
   </mx:horizontalAxis>
   <mx:verticalAxis>
    <!--设定左边Y轴坐标的数值范围 -->
    <mx:LinearAxis minimum="4000.00"
          maximum="4010.00"/>
   </mx:verticalAxis>
   <!--柱状图-->
   <mx:series>
    <mx:ColumnSeries id="cs1"
         dataProvider="{data1}"
         xField="date"
         yField="all"
         displayName="大盘指数"/>
   </mx:series>
   <mx:secondVerticalAxis>
    <!--设定Y轴坐标的数值范围 -->
    <mx:LinearAxis minimum="110"
          maximum="170"/>
   </mx:secondVerticalAxis>
   <!--定义第二个Series -->
   <mx:secondSeries>
    <mx:LineSeries id="cs2"
          dataProvider="{data2}"
          xField="date"
          yField="sale"
          displayName="交易量"/>
    <mx:LineSeries id="cs3"
          dataProvider="{data3}"
          xField="date"
          yField="offer"
          displayName="offer量"/>
   </mx:secondSeries>
  </mx:ColumnChart>
 </mx:Panel>
</mx:Application>
任务描述 相关知识 标准饼状图 圆环图 嵌套饼状图 编程要求 测试说明 任务描述 本关任务:绘制嵌套饼状图。 相关知识 饼状图,顾名思义,形状为圆型的图。饼状图算是统计学中一种古老的图形了,也是数据可视化中非常常见的图形。饼状图的核心特点是能够展示数据的比例情况,通过不同的颜色在圆中的面积大小,可以一眼看出各个数据的分布情况。 在学习本实训之前,强烈建议先学习Echarts系列的前三个实训。 标准饼状图 我们先对标准的饼状图的样子有一个概念,如下所示: 图 1 标准饼状图 饼状图的画法和柱状图以及折线图的区别较大。首先,很显然的是,饼状图里不存在x轴和y轴了,所以xAxis和yAxis这两个属性都不需要设置了,其次,饼状图的中的数据表示的是比例值(当然Echarts支持使用绝对值,它会自动帮你换算成绝对值,但是很多时候我们拿到的原始数据是比例值)。最后,饼状图可以设置一些独有的属性,比如圆的半径。 下面看一个简单的饼状图代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js --> <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')); myChart.setOption({ title : { text : "2020年百强县分布"//标题 }, tooltip : { }, legend: { data:['江苏省', '山东省','浙江省','其它']//图例 }, series : [ { name:'分布',//数据的名字 type:'pie',//表示柱状图 radius:'80%',//圆的半径 data:[ {value: 25, name: '江苏省'}, {value: 13, name: '山东省'}, {value: 18, name: '浙江省'}, {value: 44, name: '其它'} ] } ] }); // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script> </body> </html> 仔细观察配置项,可以发现一些关联的地方,帮助我们理解饼状图的画法。data中的name的值是和legend中的某一项匹配的,因为图例必须要对应上饼状图中具体的一块。 最后画出来的图如下所示: 图 2 标准饼状图绘制结果 圆环图 圆环图就是把标准饼状图中的圆改为圆环,其在代码上的改动很小,就是将上面的代码中的series中的radius从一个数字radius:'80%'改为两个数字radius:['60%','80%'],左边的表示内圆的半径,右边表示外圆的半径,这样就构成了一个圆环。 按照上面的改法画出来的圆环图如下所示: 图 3 圆环图 嵌套饼状图 嵌套饼状图,顾名思义,就是饼状图里面嵌套了一个饼状图。当然,外层的饼状图只能是圆环图,内层既可以是标准饼状图,也可以是圆环图。 嵌套圆环图有两组数据,一组是内层的数据,一组是外层的数据,外层数据是对内层数据的细化,内层的一项可以在外层对应一项或者几项。而且,外层的这“一项或者几项”对应的圆心角的和与内层相同。 这两组数据分别作为两个object({}里面的叫一个object)放在series中即可。通过它们的半径判断出哪个是内层,哪个是外层,而无需显示的指定。 代码如下所示: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入 echarts.js --> <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')); myChart.setOption({ title : { text : "2020年百强县分布"//标题 }, tooltip : { }, legend: { orient:'vertical',//设置图例为垂直方向 x: 1,//设置图例在x轴的起点 y: 30,//设置图例在y轴的起点 data:['江苏省', '山东省','浙江省','其它', '苏南', '苏中', '苏北', '青烟威', '除青烟威外其它', '杭甬', '除杭甬外其它', '其它城市']//图例 }, series : [ { name:'分布',//数据的名字 type:'pie',//表示柱状图 radius:['10%', '30%'], data:[ {value: 25, name: '江苏省'}, {value: 13, name: '山东省'}, {value: 18, name: '浙江省'}, {value: 44, name: '其它'} ] }, { name:'分布2',//数据的名字 type:'pie',//表示柱状图 radius:['40%', '60%'], data:[ {value: 11, name: '苏南'}, {value: 9, name: '苏中'}, {value: 5, name: '苏北'}, {value: 5, name: '青烟威'}, {value: 8, name: '除青烟威外其它'}, {value: 7, name: '杭甬'}, {value: 11, name: '除杭甬外其它'}, {value: 44, name: '其它城市'} ] } ] }); // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); </script> </body> </html> 显然,我们的内层和外层但是圆环图,内层的内半径和外半径分别是10%和30%,内层的内半径和外半径分别是40%和60%。 最后画出来的效果如下所示: 图 4 嵌套圆环图 编程要求 根据提示,在右侧编辑器Begin和End之间补充代码(有两处),这段代码画出来的是一个饼状图,你补充的代码需要保证内层是一个标准饼状图,它的半径是40%。外层是一个嵌套饼状图,它的内半径和外半径分别是60%和80%。 测试说明 我们将调用浏览器接口,打开你修改的这段代码生成的网页,并截图获取其中的图像,和正确的图像进行对比,从而判断你补充的程序是否正确,正确将输出:“图像对比一致,恭喜通关!” 同时我们将展示你生成的图像和正确的图像,你可以通过观察图像的方式修改自己尚未通过的代码。 测试输入: 预期输出:图像对比一致,恭喜通关!
最新发布
05-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值