vue3+ts项目实现陕西省3d地图,解决3d地图click、mouseover等事件失效问题

echarts:map3D上的散点点击失效 问题描述: 网友求助说他用echarts做map3D图,想要点击散点,然后获取散点里的信息,但是点击失效,困扰好几天了。发了项目给我,仔细研究了一下结构,地图是geo3D,然后利用for循环,在上面加散点图,分别给每个散点设置不同的symbol和symbolsize等,散点数据以供12条,也就是说地图上放了12张散点图,每个散点图里只有一个散点,研究了半天,也没发现有什么异常。 解决过程: 百度了一圈,根据一个帖子的解决方法,把geo也加入到series里去,可以触发点击事件了,但是点击获取到的只是g 阅读详情

最终效果图
在这里插入图片描述

这里只展示地图代码

1.安装echarts相关扩展

npm install echarts@5.4.3 echarts-gl

2.前往阿里云数据可视化平台下载地图相关json数据
https://datav.aliyun.com/portal/school/atlas/area_selector?spm=a2c6h.12873639.article-detail.4.2c103da4ojWL87
在这里插入图片描述
3.创建echartsUtils.ts(本项目用的是按需引入,存在多余组件)

import * as echarts from 'echarts/core';
import {
  CustomChart,
  FunnelChart, 
  FunnelSeriesOption,
  BarChart,
  LineChart,
  GaugeChart,
  MapChart,
  PieChart, 
  PieSeriesOption
} from 'echarts/charts';

import { Map3DChart, Bar3DChart, Scatter3DChart } from 'echarts-gl/charts';
// import { ShadowEffect, LightEffect } from 'echarts-gl/effects';

import {
  TitleComponent,
  TooltipComponent,
  GridComponent,
  // 数据集组件
  DatasetComponent,
  // 内置数据转换器组件 (filter, sort)
  TransformComponent,
  PolarComponent,
  
  LegendComponent,
  ToolboxComponent,
  GraphicComponent,
  DataZoomSliderComponent,
  DataZoomComponent,
  VisualMapComponent,
  GeoComponent,

} from 'echarts/components';

import { LabelLayout, UniversalTransition } from 'echarts/features';

import { CanvasRenderer } from 'echarts/renderers';


import type {
  // 系列类型的定义后缀都为 SeriesOption
  BarSeriesOption,
  LineSeriesOption
} from 'echarts/charts';

import type {
  // 组件类型的定义后缀都为 ComponentOption
  TitleComponentOption,
  TooltipComponentOption,
  GridComponentOption,
  DatasetComponentOption,
  PolarComponentOption,
  LegendComponentOption,
  ToolboxComponentOption,
} from 'echarts/components';

import type {
  ComposeOption,
} from 'echarts/core';

// 通过 ComposeOption 来组合出一个只有必须组件和图表的 Option 类型
type ECOption = ComposeOption<
  | BarSeriesOption
  | LineSeriesOption
  | TitleComponentOption
  | TooltipComponentOption
  | GridComponentOption
  | DatasetComponentOption
  | PolarComponentOption
  | LegendComponentOption
  | ToolboxComponentOption
  | PieSeriesOption
>;

// 注册必须的组件
echarts.use([
  TitleComponent,
  TooltipComponent,
  GridComponent,
  DatasetComponent,
  TransformComponent,
  BarChart,
  LineChart,
  LabelLayout,
  UniversalTransition,
  CanvasRenderer,
  GaugeChart,
  PolarComponent, 
  LegendComponent,
  ToolboxComponent,
  FunnelChart,
  CustomChart,
  GraphicComponent,
  DataZoomSliderComponent,
  DataZoomComponent,
  VisualMapComponent,
  Map3DChart,
  MapChart,
  GeoComponent,
  Bar3DChart,
  Scatter3DChart,
  PieChart,
]);

export default echarts;

4.组件代码中使用

<template>
    <div style="width: 100%; height: 100%; overflow: hidden; background: #f2f2f2; position:relative;">
        <div class="chart" ref="chart"></div>
    </div>

    <div class="controls">
        <button class="btn" @click="showLabel" >点击显示与隐藏图中label</button>
    </div>
</template>
<script lang="ts" setup>
import { ref, computed, watch, onMounted, defineEmits, defineProps  } from 'vue'
import echarts from '@/utils/echartsUtils'
import shaanxiGeoJSON from '@/assets/jsondata/shannxi.json'

const chart = ref<HTMLElement | null>(null);
let chartInstance: echarts.ECharts | null = null;
let isRotating = false;
const showMapLabel = ref(false);
// 地图上显示的数据
const populationData = ref([
    { name: '西安市', value: 5123345, coord: [108.942210, 34.261532] },
    { name: '宝鸡市', value: 2223476, coord: [107.237539, 34.361915] },
    { name: '咸阳市', value: 423435, coord: [108.308837, 34.799870] },
    { name: '铜川市', value: 43400, coord: [108.945603, 35.206756] },
    { name: '渭南市', value: 5233427, coord: [109.803932, 34.999995] },
    { name: '延安市', value: 233326, coord: [109.489727, 36.650077] },
    { name: '榆林市', value: 3833245, coord: [109.734546, 38.299185] },
    { name: '汉中市', value: 383320, coord: [107.023323, 33.067480] },
    { name: '安康市', value: 123456, coord: [109.029022, 32.684714] },
    { name: '商洛市', value: 221337, coord: [109.940477, 33.870422] }
]);

const showLabel = () => {
    showMapLabel.value = !showMapLabel.value;
    iniEcharts();
}

const iniEcharts = () => {
    if (!chart.value) return;
    // 先销毁示例
    if (chartInstance) {
        chartInstance.dispose();
        chartInstance = null;
    }
    chartInstance = echarts.init(chart.value);
    // 注册地图
    echarts.registerMap('Shaanxi', shaanxiGeoJSON as any);
    const option = {
        tooltip: {
            trigger: 'item',
            formatter: function(params : any) {
                return `${params.name}<br/>: ${params.value || 0}人`;
            }
        },
        // 统计颜色
        visualMap: {
            show: false,
            min: 0,
            max: 1300,
            inRange: {
                color: ['#46c3db', '#ffa85c', '#ff6b6b']
            },
            textStyle: {
                color: '#fff'
            }
        },
        // 全局光照和环境设置
        globe: {
            baseTexture: null, // 不使用基础纹理
            environment: '#000', // 深色背景增强发光效果
            shading: 'realistic',
            
            light: {
                ambient: {
                    intensity: 0.8
                },
                main: {
                    intensity: 1.5,
                    shadow: true
                }
            }
        },
        geo3D: {
            map: 'Shaanxi',
            shading: 'realistic',
            itemStyle: { // 三维地理坐标系组件 中三维图形的视觉属性,包括颜色,透明度,描边等。
                color: '#1E5F90', // 地图板块的颜色 rgba(46,110,149, .7)
                opacity: .5, // 图形的不透明度 [ default: 1 ]
                borderWidth: 1, // (地图板块间的分隔线)图形描边的宽度。加上描边后可以更清晰的区分每个区域 [ default: 0 ]
                borderColor: '#79A9C8' // 图形描边的颜色。[ default: #333 ]
            },
            emphasis: {
                itemStyle: {
                    color: '#61a5e2' // 鼠标移动到的地图块颜色
                }
            },
            viewControl: {
                autoRotate: isRotating,
                distance: 215, // 视角距离,数值大拉远,反之近
                alpha: 40, // 数值小后仰,反之前仰
                beta: 8, // 数字小角度偏右,数字大角度偏左
            },
            light: {
                main: {
                    intensity: 1, // 光照强度
                    shadowQuality: 'high', // 阴影质量,取值为 'low', 'medium', 'high'
                    alpha: 25, // 光照的不透明度
                    beta: 10, // 光照的角度
                    shadow: true // 是否显示阴影
                },
                ambient: {
                    intensity: 0.3 // 环境光照强度
                }
            },
            regionHeight: 6 // 地图块高度
        },
        series: [
            {
                name: '3d地图',
                type: "bar3D",
                coordinateSystem: 'geo3D',
                barSize: 0,
                bevelSize: 0,
                data: populationData.value.map(item => {
                    return [item.coord[0], item.coord[1], item.value, item.name];
                }),
                label: {
                    show: showMapLabel.value,
                    formatter: function(params:any) {
                        return params.data[3] + ' ' + params.data[2];
                    },
                    position: "top",
                    textStyle: {
                        color: "#ffffff",
                        fontSize: 16,
                        backgroundColor: 'rgba(0,0,0,0.8)',
                        padding: [5, 5, 5, 5],
                        borderRadius: 5,
                        borderWidth: 1,
                        // borderColor: "#F40000"
                    }
                },
                
                
            },
        ]
    };
    chartInstance.setOption(option);
    // 响应窗口大小变化
    window.addEventListener('resize', () => {
        if (chartInstance) {
            chartInstance.resize();
        }
    });
}
// 旋转地图
const rotateMap = () => {
    isRotating = !isRotating;
    if (chartInstance) {
        const option = chartInstance.getOption() as any;
        option.geo3D[0].viewControl.autoRotate = isRotating;
        chartInstance.setOption(option);
    }
};
onMounted(() => {
    setTimeout(() => {
        iniEcharts();
    }, 600);
})
</script>
<style scoped>
.chart {
    width: 100%;
    height: 700px;
    margin-bottom: 20px;
    top: -130px;
    /**定义地图背景图片*/
    background-image: 
        linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.5)),
        url('@/assets/3dmap.jpg');
    background-size: cover; 
    background-position: center;
}
</style>

解决3d地图click、mouseover等事件失效问题

不使用geo3D,将样式等配置全部写入series,会存在部分属性失效问题

const iniEcharts = () => {
    if (!chart3d.value) return;
    // 先销毁示例
    if (chartInstance) {
        chartInstance.dispose();
        chartInstance = null;
    }
    chartInstance = echarts.init(chart3d.value);
    // 注册地图
    echarts.registerMap('Shaanxi', shaanxiGeoJSON as any);
    const option = {
        tooltip: {
            trigger: 'item',
            formatter: function(params : any) {
                return `${params.name}<br/>: ${params.value || 0}人`;
            }
        },
        // 统计颜色
        visualMap: {
            show: false,
            min: 0,
            max: 1300,
            inRange: {
                color: ['rgba(30,95,144, .5)', 'rgba(30,95,144, .5)', 'rgba(30,95,144, .5)']
            },
            // textStyle: {
            //     color: '#fff'
            // }
        },
        // 禁用 geo3D,使用 map3D 系列替代
        // geo3D: {
        //     show: false // 完全禁用 geo3D
        // },
        series: [
            {
                name: '3d地图',
                type: "map3D",
                map: 'Shaanxi', // 使用注册的地图名称
                
                // 从 geo3D 迁移的样式配置
                shading: 'realistic',
                silent: false,
                roam: true,
                
                itemStyle: {
                    // areaColor: '#000000',
                    opacity: 1,
                    borderWidth: 1,
                    borderColor: '#79A9C8'
                },
                emphasis: {
                    itemStyle: {
                        color: '#61a5e2'
                    }
                },
                viewControl: {
                    autoRotate: isRotating,
                    distance: 215,
                    alpha: 40,
                    beta: 8,
                },
                light: {
                    main: {
                        intensity: 1,
                        shadowQuality: 'high',
                        alpha: 25,
                        beta: 10,
                        shadow: true
                    },
                    ambient: {
                        intensity: 0.3
                    }
                },
                regionHeight: 6,
                
                // 数据配置 - 使用对象格式
                data: populationData.value.map(item => ({
                    name: item.name,
                    value: item.value, // 直接使用数值,不是数组
                    // 如果需要3D高度效果,可以使用 regionHeight 或单独设置
                    coord: item.coord,
                    data1: item.data1
                })),
                label: {
                    show: showMapLabel.value,
                    formatter: function(params: any) {
                        return `${params.name} ${params.data.data1 || ''}`;
                    },
                    position: "top",
                    textStyle: {
                        color: "#ffffff",
                        fontSize: 16,
                        backgroundColor: 'rgba(10,6,35,.5)',
                        padding: [5, 5, 5, 5],
                        borderRadius: 8,
                        borderWidth: 1,
                    }
                }
            }
            // 移除 bar3D 系列,避免冲突
        ]
        
    };
    chartInstance.setOption(option);

    chartInstance.on('mouseover', function (params: any) {
			console.log('划入:', params); 
    });
    chartInstance.on('globalout', function (params: any) {
        console.log('globalout:', params); 
    });


    // 响应窗口大小变化
    window.addEventListener('resize', () => {
        if (chartInstance) {
            chartInstance.resize();
        }
    });
}
echarts地图 geo-3d echarts geo-ed 点击事件不触发解决方案 阅读详情

相关推荐

3D 锥形图表echarts

let loadingFunnel = () => { //title标示文字,标示线 loadingFunnel.title = (text, top, left, color, fontStyle, fontFamily, fontSize) => { return { text: text, ...

可视化 6977

echarts3D地球点击事件无效

使用echarts的3D地球时,出现点击事件没有效果的情况。

weixin_44162650的博客 3726

echarts-gl 3D地图点击事件失效的深度排查与版本兼容性解决方案

本文深入分析了echarts-gl 3D地图点击事件失效的问题,提供了详细的版本兼容性排查与解决方案。通过对比不同版本的echarts和echarts-gl组合,推荐升级到最新版本以稳定触发点击事件并获取区域数据,同时分享了降级兼容和替代交互方案,帮助开发者高效解决类似问题。

gg901的博客 952

echarts+echarts-gl vue2制作3D地图+下钻功能+标记点功能,解决dblclick事件失效问题,解决地图下钻后边框不更新保留问题

echarts+echarts-gl vue2制作3D地图+下钻功能+标记点功能,解决dblclick事件失效问题,解决地图下钻后边框不更新保留问题,但是也出现了一个问题,和我们预想的不太一样,下钻到省地图后,china地图的边框数据保留了,即:地图边框并没有更新,如图:

weixin_46408500的博客 9140

echarts geo3D结合map3D 生成可以点击获取省份信息跳转到相应省份 且地图显示省份名称

1.中国地图使用geo3d 和scatter3D做文字图层,用map3d实现点击可以获取省份信息,如果单独使用geo3d,无法获取到点击的省份信息。还有一些思路写在代码中了。2.对不同省份进行区分(项目涉及到省份排名之类的);3. 点击进入不同省份 展示各个省份的市区信息;4. 在省份地图上添加marker;

weixin_42211507的博客 3381

echarts 3D地图,地图区域点击触发事件

echarts 3D地图,地图区域点击触发事件,3d地图加数据

解决echarts柱状图数量太少,点击事件不生效问题

关闭echarts的点击事件,通过点击位置获取到xIndex为第几列,0代表第1列,然后通过这个去找到你本地的数据,完成点击效果.

xjmige的博客 2117

青龙人形机器人硬件平台设计全解析:从构型到控制系统的实战指南

本文全面解析了青龙人形机器人硬件平台的设计与实现,涵盖构型设计、驱动系统、能源方案及控制系统等核心模块。重点介绍了43个自由度的仿生学实践、关节模组的技术突破以及多模态感知融合等创新设计,为开发者提供了从理论到实战的完整指南。

embedding5hiker的博客 890

echarts gl 3d地图,click事件失效,解决办法

问题 比如点击四川,进行下钻,需要获取点击区域的name属性,根据name进而异步获取四川的地图的json,如下图所示: echart和gl版本 Loaded claygl, version 1.2.1 echarts-gl.min.js:1 Loaded echarts, version 4.6.0 事件绑定写法 myChart.on('click', function (clickpar...

程序员石磊 6431

AB脉冲详解(编码器,PLC,上位机)

编码器线有些是用不到的。Z脉冲:360度中,只有1度是输出,输出能力是。编码器实际就是发光二极管,所以电流超过20ma会缩短寿命或损坏。

cfqq1989的博客 1万+

从零到一:树莓派OpenWrt squashfs固件扩容背后的文件系统魔法

本文深入解析树莓派OpenWrt系统中squashfs固件的扩容原理与操作。通过理解squashfs与overlayfs的协同机制,掌握分区调整和文件系统扩容技巧,解决存储空间限制问题,提升设备可用性。

hadoop5ranger的博客 1037

echarts制作3D锥形金字塔

工作中遇到了这样的问题,需要绘制3D金字塔,如图所示:echarts可以做平面的金字塔和漏斗图,但是3D金字塔在官网上并没有看到相关案例。查了相关资料,用象形柱状图来实现

weixin_51609337的博客 1万+

【网络】PFC背景和原理 、文档(DCB=PFC + ETS,DCBX=DCB扩展)

目录 零、背景 一、PFC 1.概述 2.报文格式 3.工作机制 二、ETS 产生原因 基本原理 优先级组的调度 优先级的调度 三、DCBX 产生原因 基本原理 DCBX TLV介绍 五、PFC 拥塞研究(文档收集) 六、DC-QCN算法 (网络工程师必会) 7.1 α更新 7.2 降速 7.3 提速 8.总结 ...

小鱼菜鸟的博客 2165

Echarts实战案例代码(49):基于不支持立体漏斗图Funnel的HTML+CSS解决方案

Echarts的Funnel目前是不支持3D的,但是设计师在项目过程中,为了项目的炫目,会出现伪3D之类的图表。本案例是基于HTML+CSS的解决方案 CSS样式表 body { margin: 0; padding: 0; background-color: #343d4b; } .funnel { background: url("funnel.png") n

挖掘大数据价值,让决策者快速洞悉趋势,让大众读懂数据背后的故事。 2033

深入解析:el-table合并单元格

  在企业级应用开发中,我们经常需要处理复杂的数据展示需求。在构建复杂的数据展示后台时,我们常常需要将表格中具有相同属性的行进行视觉上的合并,以提升信息的聚合度和可读性。在 Element Plus 的 el-table 组件中,span-method 属性是实现单元格合并的核心机制,允许开发者自定义单元格的合并逻辑,开发者可以通过实现自定义合并策略来满足各种负责需求。  合并行的本质是通过计算相邻行数据的相似性,确定满足合并的单元格范围,然后通过 DOM 操作将多个单元格合并为一个。这种操作在前端数据可视

独泪了无痕 229

STM32 W5500 Freemodbus Modbus TCP协议功能实现

STM32F103VCT6 W5500(SPI1),实现Modbus-TCP协议的功能

坚韧与专注 2万+

从版本差异到事件机制:深度解析ECharts GL 3D地图点击失效的底层逻辑

本文深度解析ECharts GL 3D地图点击失效的底层逻辑,从版本差异到事件机制,揭示WebGL与DOM事件系统的微妙博弈。针对click事件失效问题,提供诊断方法、版本演进分析及企业级解决方案,帮助开发者高效实现3D地图交互功能。

weixin_29238147的博客 327

三维重建/SLAM笔记_最佳学习路线/攻略

本文目的 学习三维重建,需要不少知识,而知识之间又存在不同的依赖关系,为了后来人能少走弯路,也为了对自己的知识框架系统总结,特记录自己的学习路线。 学习心得 关于读书,了解基础知识是一方面,产生疑问也是一方面,为以后知道学习什么留下印象; 一回生,二回熟,看不懂时,大多是因为先验知识不够,没关系,多查多想,总会搞懂的。 学习路线 1.计算机图形学基础(OpenGL基础版)(徐文鹏 清...

惊鸿一博 3291

记录使用Echarts-gl实现3D地图

使用3D改变地图展示方向、标记坐标点显示

LiuQjie的博客 8811

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

echarts+HTML 绘制3d地图,加载散点+散点点击事件

echarts+HTML 绘制3d地图,加载散点+散点点击事件

cdd9527的博客 1030

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

echarts:实现3D地图版块叠加动效散点+轮播高亮效果

实现3D地图版块叠加动效散点效果,轮播高亮展示区域版块,且高亮区域的散点动效、颜色、标签样式均有变化

smm的博客 9581

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

242Echarts - 3D 散点图(Scatter3D - Globe Population)

效果图 源代码 $.getJSON('data-gl/asset/data/population.json', function (data) { data = data.filter(function (dataItem) { return dataItem[2] > 0; }).map(function (dataItem) { re...

阿甘兄 1825
上一篇: springboot项目使用websocket功能,使用了nginx反向代理后连接失败问题解决
下一篇: echarts 3d地图解决鼠标移动到地图中非区域块的空白区域时,触发特定事件
if时光重来
博客等级 码龄8年 248粉丝 217原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值