ChatGPT工作提效之数据可视化大屏组件Echarts的实战方案(大数据量加载、伪3D饼图、地图各省cp中心坐标属性、map3D材质)

ChatGPT工作提效系列文章目录

  1. ChatGPT工作提效之初探路径独孤九剑遇强则强
  2. ChatGPT工作提效之在程序开发中的巧劲和指令(创建MySQL语句、PHP语句、Javascript用法、python的交互)
  3. ChatGPT工作提效之生成开发需求和报价单并转为Excel格式
  4. ChatGPT工作提效之小鹅通二次开发批量API对接解决方案(学习记录同步、用户注册同步、权益订购同步、开发文档)
  5. ChatGPT工作提效之使用python开发对接百度地图开放平台API的实战方案
  6. ChatGPT工作提效之layedit上传多附件的解决方案(layedit赋值、layui.js底层修改、追加模式多附件上传)
  7. ChatGPT工作提效之使用百度地图在首都为六一儿童节献爱心(多边形覆盖物、文本标注、自动获取经纬度、爱心函数)

ChatGPT工作提效之数据可视化大屏组件Echarts的实战方案

  • ChatGPT工作提效系列文章目录
    • 1.如何加载大数量的折线图?
    • 2.如何在echart中实现伪3D的饼图效果?
    • 3.如何获取中国地图geojson属性中每个省的cp属性(中心坐标)
    • 4.如何在echarts中实现map3D的材质功能


在这里插入图片描述

数据可视化大屏的图表组件,有哪些开源产品?

数据可视化大屏的图表组件,有很多开源产品,主要有以下几种:

  1. ECharts:ECharts 是百度开源的数据可视化库,提供了各种各样的图表类型和丰富的功能,包括折线图、柱状图、散点图、饼图、雷达图、热力图等。

  2. Chart.js:Chart.js 是一个简单灵活的 JavaScript 图表库,支持多种图表类型,包括折线图、柱状图、饼图、散点图等。

  3. D3.js:D3.js 是一个 JavaScript 数据可视化库,提供了丰富的 API,能够创建各种各样的定制化可视化图表。

  4. AntV:AntV 是阿里云的前端可视化解决方案,提供了各种各样的图表类型,包括折线图、柱状图、饼图、散点图等。

  5. Highcharts:Highcharts 是一个 JavaScript 数据可视化库,提供了多种图表类型和交互式功能。

  6. FusionCharts:FusionCharts 是一个基于 Flash 和 JavaScript 的交互式图表库,支持多种图表类型,包括折线图、柱状图、饼图、散点图等。

以上是一些开源的数据可视化大屏图表组件,开发者可以根据项目需求选择合适的组件进行开发。

如何使用Echarts?

要使用 Echarts 进行数据可视化,可以按照以下步骤进行:

  1. 下载 Echarts:可以在 Echarts 的官网(https://echarts.apache.org/zh/index.html)上下载最新的版本。

  2. 引入 Echarts 库:在 HTML 页面中引入 Echarts 库的文件,例如:

<script src="echarts.min.js"></script>
  1. 创建一个 DOM 元素:在 HTML 页面中创建一个 DOM 元素,用于显示图表,例如:
<div id="myChart" style="width: 600px;height:400px;"></div>
  1. 初始化 Echarts 实例:在 JavaScript 代码中初始化 Echarts 实例,并设置图表的配置项和数据,例如:
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('myChart'));// 指定图表的配置项和数据
var option = {title: {text: 'ECharts 入门示例'},tooltip: {},xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]
};// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
  1. 在网页中显示图表:最后在网页中显示图表即可。

以上就是使用 Echarts 进行数据可视化的基本步骤,具体的图表类型和配置项可以参考 Echarts 的官方文档进行学习和使用。

1.如何加载大数量的折线图?

加载大量的折线图,可以采用 Echarts 提供的大数据量加载方案,即数据分块加载(dataset)和视图区域范围(dataZoom)限制,以避免过多数据的同时提高渲染性能。

下面是一个加载大量的折线图的基本代码:

// 数据分块加载(dataset)
var data = [...]; // 数据数组
var option = {dataset: {source: data,// 每次渲染的数据量dimensions: ['日期', '数值'],sourceHeader: false},// 视图区域范围(dataZoom)dataZoom: [{type: 'slider',   // 滑动条形式xAxisIndex: 0,    // 设置 dataZoom 组件控制的 x轴start: 0,         // 起始位置end: 50           // 结束位置}],// 折线图配置项series: [{type: 'line',encode: {x: 0,  // 指定数据的维度作为 x 轴y: 1   // 指定数据的维度作为 y 轴}}]
};// 初始化 Echarts 实例
var myChart = echarts.init(document.getElementById('main'));// 使用刚指定的配置项和数据显示图表
myChart.setOption(option);

上面代码中的 data 数组存储了大量的数据,通过 dataset 配置项实现了数据分块加载,每次渲染一定数量的数据,避免了一次性渲染大量数据导致的性能问题。通过 dataZoom 配置项实现视图区域范围限制,只渲染指定区域范围内的数据。

如果需要动态加载数据,可以结合 Echarts 提供的 ajax 动态获取数据方案进行:

// 初始化 Echarts 实例
var myChart = echarts.init(document.getElementById('main'));// 大量数据的折线图配置项
var option = {dataset: {source: [],   // 初始数据为空dimensions: ['日期', '数值'],sourceHeader: false},dataZoom: [{type: 'slider',xAxisIndex: 0,start: 0,end: 50}],series: [{type: 'line',encode: {x: 0,y: 1}}]
};// 使用刚指定的配置项和数据显示图表
myChart.setOption(option);// ajax 获取数据
$.ajax({url: 'data.json',dataType: 'json',success: function(res) {// 更新数据myChart.setOption({dataset: {source: res   // 更新数据为 ajax 获取到的数据}});}
});

上面的代码中,通过 ajax 获取数据,更新数据并动态更新大量的折线图。

2.如何在echart中实现伪3D的饼图效果?

要在 Echarts 中实现伪3D的饼图效果,可以通过以下步骤进行:

  1. 引入 Echarts 库:在 HTML 页面中引入 Echarts 库的文件,例如:
<script src="https://cdn.bootcdn.net/ajax/libs/echarts/5.0.2/echarts.min.js"></script>
  1. 创建一个 DOM 元素:在 HTML 页面中创建一个 DOM 元素,用于显示图表,例如:
<div id="myChart" style="width: 600px; height: 400px"></div>
  1. 初始化 Echarts 实例:在 JavaScript 代码中初始化 Echarts 实例,并设置图表的配置项和数据,例如:
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('myChart'));// 设置图表的配置项和数据
var option = {tooltip: {trigger: 'item',formatter: '{b}: {c} ({d}%)'},series: [{name: '访问来源',type: 'pie',radius: ['50%', '70%'],avoidLabelOverlap: false,label: {show: false,position: 'center'},emphasis: {label: {show: true,fontSize: '30',fontWeight: 'bold'}},labelLine: {show: false},data: [{value: 335, name: '直接访问'},{value: 310, name: '邮件营销'},{value: 234, name: '联盟广告'},{value: 135, name: '视频广告'},{value: 1548, name: '搜索引擎'}]}]
};// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
  1. 设置饼图的 3D 效果:在上述代码中,通过在 series 中的 itemStyle 中设置 depth 属性,可以实现饼图的 3D 效果。同时需要添加 coordinateSystem 属性,以指示该系列属于哪个坐标系,例如:
series: [{name: '访问来源',type: 'pie',coordinateSystem: 'polar',  // 指定坐标系为极坐标系radius: ['50%', '70%'],avoidLabelOverlap: false,label: {show: false,position: 'center'},emphasis: {label: {show: true,fontSize: '30',fontWeight: 'bold'}},labelLine: {show: false},itemStyle: {  // 3D 效果设置normal: {borderWidth: 5,borderColor: '#fff',opacity: 0.8,shadowBlur: 5,shadowOffsetX: 0,shadowOffsetY: 3,shadowColor: 'rgba(0, 0, 0, 0.3)',depth: 50  // 3D 效果的深度}},data: [{value: 335, name: '直接访问'},{value: 310, name: '邮件营销'},{value: 234, name: '联盟广告'},{value: 135, name: '视频广告'},{value: 1548, name: '搜索引擎'}]}
]
  1. 在网页中显示图表:最后在网页中显示图表即可。

上述代码中的 depth 属性值可以根据实际情况进行设置,以达到适当的 3D 效果效果。

在这里插入图片描述

3.如何获取中国地图geojson属性中每个省的cp属性(中心坐标)

在 Echarts 中,可以通过 geo 组件加载地图数据,而中国地图的 geoJSON 数据默认包含了各个省份的边界数据,以及其他属性,例如各省的 cp 属性用于设置省份地图的中心坐标。

可以通过先加载中国地图的 geoJSON 数据,然后使用 echarts.util.mapData.params 方法获取各省的 cp 属性数据,对应的省份数据索引与中国地图 geoJSON 数据的 features 数组下标一一对应。

如需获取各省 cp 属性数据,可以按照以下步骤进行:

  1. 加载中国地图的 geoJSON 数据,例如:
$.getJSON('./china.json', function (chinaJson) {echarts.registerMap('china', chinaJson);// 进行其他操作...
});
  1. 获取各省的 cp 属性数据,例如:
var params = echarts.util.mapData.params('china');
var coordinates = params.rawFeatures.map(function (feature) {// return feature.properties.cp;return feature.attributes.cp; // echarts 5.x 需要使用 attributes 属性
});
console.log(coordinates);

在上述代码中,echarts.util.mapData.params 会返回包含中国地图各省数据的信息对象,其中 rawFeatures 数组包含了各省的坐标数据以及其他属性数据,例如 cp 属性。使用 map 方法将各省的 cp 属性数据存入 coordinates 数组中,以便后续使用。

注意:在 Echarts 5.x 中,需要使用 attributes 属性获取各个省份的 cp 值。如果使用 properties 属性,在控制台中会出现 “Uncaught TypeError: Cannot read properties of undefined (reading ‘properties’)” 错误。

4.如何在echarts中实现map3D的材质功能

在 Echarts 中实现 map3D 地图的材质功能,需要按照以下步骤进行:

  1. 为地图数据添加高程信息

geoJSON 数据中,地理信息数据只包含各个省市的边界信息,需要通过高程数据获取地图数据的 3D 笛卡尔坐标。可以使用 echarts.add3DLayer 函数为 geoJSON 数据添加高程信息。

例如,使用以下代码获取中国地图的高程数据:

$.get('data/asset/data/geo3d-china.json', function (geo3D) {echarts.add3DLayer('china-high', geo3D, {// 其他配置项});
}, 'json');

其中,geo3d-china.json 文件是包含中国地图高程数据的 json 文件。echarts.add3DLayer 函数用于添加 3D 图层,第一个参数为图层名称,第二个参数是高程数据,第三个参数是配置项。

通过添加高程数据,地图的图层信息就变成了 3D 笛卡尔坐标系的空间信息。

  1. 定义材质样式

使用 echarts.registerMap3d 函数进行地图的 3D 效果的渲染,可以通过在地图的 textures 属性中配置材质路径和样式信息实现地图材质功能。

例如,定义一个地图 材质

echarts.registerMap3d('mapName', {//材质路径texture: 'path/to/texture.png',// 材质样式color: 'red',// 光照强度,控制阴影的强度specularIntensity: 1,// 高光贴图强度glossIntensity: 1,// 其他配置项
});

其中,texture 为材质路径,可以是图片路径或调色板配色方式;color 为材质颜色;另外还可以通过 specularIntensityglossIntensity 属性来控制阴影、镜面和高光的效果。

  1. 为地图元素应用材质

将定义的材质样式应用到地图元素上,可以在地图的 visualMap 中配置对应的材质信息。例如:

var option = {// 其他配置项visualMap: {type: 'continuous',dimension: 'value',calculable: true,min: 0,max: 1000,top: 'bottom',left: 'right',inRange: {color: ['#50a3ba', '#eac736', '#d94e5d']},// 定义材质textures: [{id: 'mapName', type: 'repeat', src: 'path/to/texture.png'}],inRange: {// 应用材质texture: 'mapName',color: '#fff'},// 其他配置项seriesIndex: [0]},// 其他配置项
}

在上述代码中,通过 textures 属性引入定义的材质,再通过 inRange 属性在视觉映射中应用材质,以实现地图的材质效果。

需要注意的是,不同的视觉映射类型(continuouspiecewisecategory)会影响材质显示的效果。在设置材质时,需要视图形数据类型选择合适的映射方式,并根据实际需求进行适当调整才能达到最佳效果。


@漏刻有时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/19530.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

100天精通Python(可视化篇)——第93天:Pyecharts绘制多种炫酷饼图参数说明+代码实战(百分比、环形、玫瑰、内嵌、多个子图饼图)

文章目录 专栏导读1. 基础饼图add函数简单案例改变颜色 2. 百分比饼图3. 环形饼图4. 玫瑰饼图5. 内嵌环图6. 多个饼图书籍推荐&#xff08;包邮送书5本&#xff09; 专栏导读 &#x1f525;&#x1f525;本文已收录于《100天精通Python从入门到就业》&#xff1a;本专栏专门针…

李宏毅对ChatGPT的原理剖析—包括常见误解、背后的预训练和其所带来的研究问题...

一天前&#xff0c;李宏毅老师突然在youtube上更新里了三个关于【生成式AI】ChatGPT 原理剖析的视频和一个使用ChatGPT玩文字冒险游戏的视频&#xff0c;很有深度&#xff0c;所以我搬到了视频号上了&#xff0c;请大家享用~ 【生成式AI】ChatGPT 原理剖析 (1/3) — 對 ChatGPT…

分享一款全网最全的 AI 工具导航网站:未来百科

我们来让ChatGPT帮助我们写一篇短文来介绍这个强大的AI工具网站。鄙人才疏学浅&#xff0c;就不费口舌了。【欢迎转载】。 未来百科&#xff08;https://nav.6aiq.com&#xff09;是一个全面收录AI工具的导航网站&#xff0c;涵盖了多个领域和应用场景的优质AI产品。该网站旨在…

《花雕学AI》大揭秘:ChatGPT 如何让你的聊天机器人更智能、更有趣、更有用

你是否想过有一个可以和你聊天、陪你玩耍、帮你学习、给你创意的机器人&#xff1f;如果你的答案是肯定的&#xff0c;那么你一定会喜欢 ChatGPT。 ChatGPT 是一个基于 GPT-3 或者 GPT-4 技术的聊天机器人&#xff0c;可以与人类进行自然和流畅的对话。GPT-4 是目前最先进的自…

table表格转Excel

我定义的js文件为table.js 下面的html中引入 $(document).ready(function () {var base64 function (s) { return window.btoa(unescape(encodeURIComponent(s))) };var format function (s, c) {return s.replace(/{(\w)}/g,function (m, p) {return c[p];});};var uri &q…

怎么把图片转换成表格?分享三个简单方法给你

你们是否在工作的时候会遇到这样的情况&#xff1a;收到同事发来的一张表格图片&#xff0c;需要你进行汇总登记&#xff0c;通常这种时候&#xff0c;你们都会怎么做呢&#xff1f;是根据图片的内容&#xff0c;手动输入制作成一份表格吗&#xff1f;虽然这样子可以进行表格的…

想学习如何把excel图片转表格?1分钟教会你图片转表格怎么转

应该有不少小伙伴接收过上司或领导以图片格式发送过来的excel表格吧&#xff1f;并且还会要求我们将里面的内容整理为电子档&#xff0c;便于后期的内容编辑以及数据修改。 而当你们收到这种任务时&#xff0c;是怎么去操作的呢&#xff1f;是不是大部分人会选择手动重新制作&…

想知道图片转表格怎么转?简单实用的转换方法分享

最近收到了小伙伴的私信&#xff0c;上级让他把表格进行汇总归类&#xff0c;重新制作一份新的表格&#xff0c;但是上级发来的却是一张表格图片&#xff0c;这下子让他有点摸不着头脑。表格数据很多很杂&#xff0c;如果照着这些数据来制作表格的话&#xff0c;会非常麻烦。所…

图片转excel表格方法介绍,办工常备工具

图片怎么转换成excel表格&#xff1f;Excel表格作为一种文件格式早就被大家习以为常&#xff0c;我们经常会通过它来处理问题、汇报成果。有时候在网上查找资料时也会碰到表格形式的文件&#xff0c;整理起来还算方便&#xff0c;但如果是图片想整理成表格就会麻烦很多&#xf…

vCard通讯录(vcf文件)转excel表格的方法

vCard通讯录文件也是vcf文件&#xff0c;一般用来导出导入手机通讯录&#xff0c;vcf文件基本上手机都通用都支持的&#xff0c;很多人都是用这个格式来备份通讯录。但是vcf文件除了手机通讯录&#xff0c;在其他地方查看起来不太方便&#xff0c;这时候我们就想要把vcf转为exc…

有哪些图片转excel表格的软件?

在日常工作中&#xff0c;我们常常需要对一些表格进行分析和处理。有时候&#xff0c;这些表格可能以图片的形式存在&#xff0c;这时候我们就需要将图片中的表格内容提取出来并转换为Excel表格&#xff0c;以便进行后续的操作和分析。通过图片转Excel表格的方法&#xff0c;我…

怎么把图片里的表格转成电子版表格?说一个渠道

我们在日常学习办公时&#xff0c;经常遇到需要提取手头上或者同事发来图片中的表格的情况&#xff0c;手动录入费时费力。其实不用这么麻烦&#xff0c;现在市面上已经有很多识别软件可以快速帮助我们做到表格转换&#xff0c;下面就给大家推荐两种&#xff0c;一起来看看吧~ …

图片怎么免费转excel表格?说一种思路

Excel相信大家都使用过&#xff0c;它汇总归纳和展现数据可视性的能力十分强大。有时我们需要将图片中的数据转成Excel表格&#xff0c;有没有转换后和原图保持一致的办法呢&#xff1f;下面给大家分享三种转换工具&#xff0c;一起来看看吧。 一、借助Word将图片转成excel表格…

图片怎么转换到Excel表格?偷偷安利一个好用的方法

小伙伴们是否遇到过领导或同事需要你帮忙来做一个Excel文件呢&#xff1f;而且给到的参考数据还是图片的形式。如果我们根据图片重新创建一个Excel&#xff0c;那就要费时费力了。其实对于这种要求我们可以用一些工具来实现图片到Excel的转换。那么图片怎么转换到Excel表格呢&a…

如何在亚马逊 SageMaker 进行 Stable Diffusion 模型在线服务部署

文章目录 前言 - 浅谈 AIGCAIGC - 引领人工智能走向春天春天里盛开的 AI 绘画AI 绘画之Stable Diffusion 2.0 登场人人都有机会成为前沿的技术探索者 基于Amazon SageMaker进行Stable Diffusion 模型部署认识 Amazon SageMaker借助 Amazon SageMaker 进行环境搭建和模型推理1. …

数影周报:微星被索要2750万元巨额赎金,标贝科技获超亿元融资

本周看点&#xff1a;微星被索要2750万元巨额赎金&#xff1b;微软发布Windows 365 Frontline 服务&#xff1b;Shopify Functions将于2024年替代Shopify Scripts&#xff1b;标贝科技获超亿元B2轮融资...... 数据安全那些事 微星被索要2750万元巨额赎金 4月7日消息&#xff0c…

干货!搞懂这27个问题,让你秒变 Python 高手!

↓推荐关注↓ 01. 为什么使用缩进来分组语句&#xff1f; Guido van Rossum 认为使用缩进进行分组非常优雅&#xff0c;并且大大提高了普通 Python 程序的清晰度。大多数人在一段时间后就学会并喜欢上这个功能。 由于没有开始/结束括号&#xff0c;因此解析器感知的分组与人类读…

Spring 官宣,干掉原生 JVM!

点击关注公众号&#xff0c;Java干货及时送达&#x1f447; 文章来源&#xff1a;http://t.csdn.cn/ioC1d 目录 1. 团队协作2. 支持的范围3. start.spring.io4. 预先转换5. 结论 Spring 团队日前发布了 Spring Native Beta 版。通过 Spring Native&#xff0c;Spring 应用将有机…

目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)

超越CIOU/SIOU | Wise-IoU助力YOLO强势涨点&#xff01;&#xff01;&#xff01; 论文题目&#xff1a;Wise-IoU: Bounding Box Regression Loss with Dynamic Focusing Mechanism 论文链接&#xff1a;https://arxiv.org/abs/2301.10051 ​ 近年来的研究大多假设训练数据中的…

低代码平台这么多,能用来找工作可能只有它了

前言引入 “低代码开发平台”是一种用于快速设计和开发应用程序的软件系统&#xff0c;在中国企业数字化浪潮下&#xff0c;企业对软件应用需求提升&#xff0c;IT资源供需不平衡以及传统开发成本高等原因&#xff0c;让低代码开发在中国具有巨大的发展潜力。 文章目录 前言引入…