实训作业——气候温度与降水量+多表联动王者荣耀<水印>

文章介绍了如何使用ECharts创建混合图和实现多图表之间的联动效果,包括配置选项、数据展示和echarts.connect的使用示例,展示了在实训作业中数据可视化的实践应用。
摘要由CSDN通过智能技术生成

一.实训作业 

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <!--引入ECharts脚本-->
    <script src="js/echarts.js"></script>
</head>

<body>
    <!---为ECharts准备一个具备大小(宽高)的DOM-->
    <div id="main" style="width: 800px; height: 400px"></div>
    <script type="text/javascript">
        //基于准备好的DOM,初始化ECharts图表
        var myChart = echarts.init(document.getElementById("main"));
        //指定图表的配置项和数据
        var colors = ['#5793f3', '#d14a61', '#675bba'];
        option = {
    title: {
        text: '混合图',
    },
    
    color: colors,
 
    tooltip: {
        trigger: 'axis',
        axisPointer: {
            type: 'cross'
        }
    },
    grid: {
        right: '20%'
    },
    toolbox: {
        feature: {
            dataView: {show: true, readOnly: false},
            restore: {show: true},
            saveAsImage: {show: true}
        }
    },
    legend: {
        data: ['蒸发量', '降水量', '平均温度']
    },
    xAxis: [
        {
            type: 'category',
            axisTick: {
                alignWithLabel: true
            },
            data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
        }
    ],
    yAxis: [
        {
            type: 'value',
            name: '蒸发量',
            min: 0,
            max: 250,
            position: 'right',
            axisLine: {
                lineStyle: {
                    color: colors[0]
                }
            },
            axisLabel: {
                formatter: '{value} ml'
            }
        },
        {
            type: 'value',
            name: '降水量',
            min: 0,
            max: 250,
            position: 'right',
            offset: 80,
            axisLine: {
                lineStyle: {
                    color: colors[1]
                }
            },
            axisLabel: {
                formatter: '{value} ml'
            }
        },
        {
            type: 'value',
            name: '温度',
            min: 0,
            max: 25,
            position: 'left',
            axisLine: {
                lineStyle: {
                    color: colors[2]
                }
            },
            axisLabel: {
                formatter: '{value} °C'
            }
        }
    ],
    series: [
        {
            name: '蒸发量',
            type: 'bar',
            data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
        },
        {
            name: '降水量',
            type: 'bar',
            yAxisIndex: 1,
            data: [2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
        },
        {
            name: '平均温度',
            type: 'line',
            yAxisIndex: 2,
            data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
        }
    ]
};
//使用刚指定的配置项和数据显示图表
myChart.setOption(option);
    </script>
</body>

</html>

效果图如下: 

 

二. 多表联动 

echarts.connect 是 ECharts 提供的方法之一,用于将多个图表实例连接在一起,实现它们的联动效果。通过连接,一个图表的操作(如缩放、平移)会影响到其他连接的图表,从而在多个图表之间保持一致性的视图状态。

具体而言,echarts.connect 接受一个数组参数,数组中包含要连接的 ECharts 实例。连接之后,这些图表实例就会共享同一个 group,从而共享视图状态。例如,如果您对一个图表进行了缩放,其他连接的图表也会相应地进行缩放。

这种联动效果对于同时展示多个相关的图表或图表中的不同视图非常有用,使用户能够更方便地分析和比较数据。

添加水印

代码如下:

<!DOCTYPE html>
<html>
 
<head>
    <meta charset="utf-8">
    <!--引入ECharts脚本-->
    <script src="js/echarts.js"></script>
</head>
 
<body>
    <!---为ECharts准备一个具备大小(宽高)的DOM-->
    <div id="main1" style="width: 800px; height: 350px"></div>
    <div id="main2" style="width: 800px; height: 350px"></div>
    <script type="text/javascript">
        //基于准备好的DOM,初始化ECharts图表
        var myChart1 = echarts.init(document.getElementById("main1"));
        //指定图表的配置项和数据
        var myChart1=echarts.init(document.getElementById("main1"));
        var waterMarkText = '蜡笔小新'; // 设置水印的字符
		var canvas = document.createElement('canvas');
		var ctx = canvas.getContext('2d');
		canvas.width = canvas.height = 100;
		ctx.textAlign = 'center';
		ctx.textBaseline = 'middle';
		ctx.globalAlpha = 0.08;
		ctx.font = '30px Microsoft Yahei'; // 设置水印文字的字体
		ctx.translate(50, 50); // 设置水印文字的偏转值
		ctx.rotate(-Math.PI / 4); // 设置水印旋转的角度
		ctx.fillText(waterMarkText, 0, 0); // 设置填充水印
        var option1 = {
            backgroundColor:{type:'patten',image:canvas,repeat:'repeat'},
            title: {
                text: '王者荣耀英雄数值',
            },
            legend: {
                data: ['生命','物理', '法强','物抗','法抗','移速'],
                type:'scroll',               
                width:'20%'
            },
            //鼠标移动到指定位置显示数据
            tooltip: {
                confine:true,
                enterable:true,
            },
            toolbox: {
                show: true,
                feature: {
                    mark: { show: true },
                    dataView: { show: true, readOnly: false },
                    magicType: { show: true, type: ['line', 'bar'] },
                    restore: { show: true },
                    saveAsImage: { show: true },
                },
            },
            calculable: true,
        	radar:{        
        			indicator:[
        				{name:'法力值',max:370},
        				{name:'物理',max:370},
        				{name:'法强',max:370},
        				{name:'物抗',max:370},
        				{name:'法抗',max:370},
                        {name:'移速',max:370},
        			],
        		},
        	
            series: [
                {
                    center:['10%,55%'],
               		name:'radarpanel',
               		type:'radar',
               		//鼠标移动到指定位置显该组数据高亮显示
               		itemStyle:{
               			normal:{lineStyle:{width:1},opacity:0.2},
               			emphasis:{lineStyle:{width:5},opacity:1}
               		},
               		data:[
            	   		{
            	   		name:'诸葛亮',
            	   		value:[120,170,166,85,50,370], 
            	   		label:{
            	   			show:true
            	   		}
               		},
                       {
            	   		name:'吕布',
            	   		value:[150,166,80,95,50,380], 
            	   		label:{
            	   			show:true
            	   		}
               		},
                       {
            	   		name:'李元芳',
            	   		value:[50,150,100,101,50,390], 
            	   		label:{
            	   			show:true
            	   		}
               		},
               
               ]
                }               
            
            ]
        };
 
        //使用刚指定的配置项和数据显示图表
        myChart1.setOption(option1);
        var myChart2 = echarts.init(document.getElementById("main2"));
        var option2 = {
            backgroundColor:{type:'patten',image:canvas,repeat:'repeat'},
            legend: {
                data: ['生命','物理', '法强','物抗','法抗','出场率'],
                type:'scroll',               
                width:'25%'
            },
            //鼠标移动到指定位置显示数据
            tooltip: {
                confine:true,
                enterable:true,
            },
            toolbox: {
                show: true,
                feature: {
                    mark: { show: true },
                    dataView: { show: true, readOnly: false },
                    magicType: { show: true, type: ['line', 'bar'] },
                    restore: { show: true },
                    saveAsImage: { show: true },
                },
            },
            calculable: true,
            
            xAxis: [{
            		type: 'category',
 
                	data: ['生命','物理', '法强','物抗','法抗','移速']
 
            		},
 				],
            	yAxis: [{
                	type: 'value'
 
            	},
 					],
            	series: [
                  
            		{          
 					name:'诸葛亮',
 					type:'bar',
 					
                	data: [120,170,166,85,50,370]
            		},
            		{
            		name:'吕布',
            		type:'bar',
            		
            		data:[150,166,80,95,50,380]
            		},
                    {          
 					name:'李元芳',
 					type:'bar',
 					
                	data: [70,150,100,101,50,390]
            		},
                    
            	]
        }
        myChart2.setOption(option2);
        // myChart1.group='group1';
        // myChart2.group='group2';
        // echarts.connect('group1');
        echarts.connect([myChart1,myChart2]);
    </script>
</body>
 
</html>

效果图如下:

 

 

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python bs4库从下面这段内容“<div class="maingrid" data-v-0f3d927f=""> <!-- --> <!-- --> <!-- --> <div class="period" data-v-0f3d927f=""> Saturday, Jun 3, 2023 </div> <div class="summary summarykpis4" data-v-0f3d927f=""> <div class="icon" data-v-0f3d927f=""> <div class="partly-cloudy-day" data-v-0f3d927f=""> </div> </div> <div class="kpi summary" data-v-0f3d927f=""> <div class="subtitle"> Max </div> <div> 28℃ </div> <div class="normals"> <div> 22 </div> <div> 27 </div> <div> 36 </div> <div class="subtitle"> Min </div> <div class="subtitle"> Mean </div> <div class="subtitle"> Max </div> </div> </div> <div class="kpi summary" data-v-0f3d927f=""> <div class="subtitle"> Min </div> <div> 13℃ </div> <div class="normals"> <div> 9.9 </div> <div> 15 </div> <div> 19 </div> <div class="subtitle"> Min </div> <div class="subtitle"> Mean </div> <div class="subtitle"> Max </div> </div> </div> <div class="kpi summary" data-v-0f3d927f=""> <div class="subtitle"> Rain </div> <div> 0mm </div> <div class="normals"> <div> 0 </div> <div> 4.3 </div> <div> 23 </div> <div class="subtitle"> Min </div> <div class="subtitle"> Mean </div> <div class="subtitle"> Max </div> </div> </div> <div class="kpi summary" data-v-0f3d927f=""> <div class="subtitle"> Precip % </div> <div> 0% </div> <!-- --> </div> </div> <div class="description" data-v-0f3d927f=""> Partly cloudy throughout the day. </div> <!-- --> <!-- --> <!-- --> <!-- --> <!-- --> <!-- --> <!-- --> <!-- --> <!-- --> <!-- --> <!-- --> </div>”提取出6月3至6月5日天气信息
06-04

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值