文章目录

  1. 以下是一个 html + echarts的案例
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>ECharts 3D Scatter Plot Demo</title><!-- 引入 ECharts --><script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.9.0/echarts.min.js"></script>
</head>
<body><!-- 绘制 3D 散点图的容器 --><div id="scatter-chart" style="width: 720px; height: 480px;"></div><script>// 3D 散点图的数据格式,包含三个维度坐标信息和额外的数据var data = [[10, 20, 30, 'data1'],[20, 40, 10, 'data2'],[30, 60, 20, 'data3'],[40, 80, 40, 'data4'],[50, 100, 30, 'data5'],[60, 120, 50, 'data6']];// 基于准备好的dom,初始化echarts实例var myChart = echarts.init(document.getElementById('scatter-chart'));// 绘制3D散点图myChart.setOption({// 图表标题title: {text: 'ECharts 3D Scatter Plot Demo'},// 图表类型,3D散点图series: [{type: 'scatter3D',// 数据data: data,// 点大小symbolSize: 20,// 控制点的透明度itemStyle: {opacity: 0.8}}],// X轴的3D坐标系,相关设置xAxis3D: {type: 'value',scale: true},// Y轴的3D坐标系,相关设置yAxis3D: {type: 'value',scale: true},// Z轴的3D坐标系,相关设置zAxis3D: {type: 'value',scale: true},// 旋转3D图表grid3D: {viewControl: {// 摄像机视角alpha: 45,beta: 30}}});</script>
</body>
</html>
  1. 以下是一个 vue+echarts 的案例
  • index.vue
<!--* @Description: file content* @Version: 2.0* @Autor: Hu Kang* @Date: 2023-04-04 18:49:29* @LastEditors: Hu Kang* @LastEditTime: 2023-05-10 15:24:28* @FilePath: \src\views\page\echarts\index.vue
-->
<template><div class="content"><template #title> <icon-home /> 散点图</template><div><input type="file" id="inputfile" /><button @click="readFile()">读取文件</button></div><splashes v-if="activeKey === '7'" :chart-data="chartData" /></div>
</template><script setup lang="ts">
import {ref,reactive,watch,watchEffect,computed,getCurrentInstance,nextTick,defineComponent,toRefs,
} from 'vue';
import splashes from './components/splashes.vue';const chartData = ref()
function readFile() {var file = document.getElementById('inputfile').files[0]; // 获取选择的文件if (!file) return;var reader = new FileReader();reader.readAsText(file, 'UTF-8'); // 以文本格式读取文件reader.onload = function (event) {// 取到的文件内容chartData.value = JSON.parse(event.target.result);}
}
</script><style scoped lang="less">
.box-card-component {padding: 0px 20px;.card-header {color: #409eff;font-weight: bold;display: flex;justify-content: space-between;// height: 20px;}
}
</style>
  • splashes.vue
<!--* @Description: file content* @Version: 2.0* @Autor: Hu Kang* @Date: 2023-05-09 16:34:49* @LastEditors: Hu Kang* @LastEditTime: 2023-05-10 15:08:35* @FilePath: \src\views\page\echarts\components\splashes.vue
--><template><div ref="echartsRef" class="content" id="my-div"> </div>
</template><script setup lang="ts">
import {ref,reactive,watch,watchEffect,computed,getCurrentInstance,nextTick,defineComponent,toRefs,onMounted,
} from 'vue';
import * as echarts from 'echarts';
import 'echarts-gl'
import { RequestType } from 'cesium';const props = defineProps({// 数据 chart-datachartData: {type: Object,require: true,default: () => {return {}}},width: {type: String,default: '98%'},height: {type: String,default: '67vh'},autoResize: {type: Boolean,default: true}
})
const { chartData } = toRefs(props)// 3D 散点图的数据格式,包含三个维度坐标信息和额外的数据
var data = [[10, 20, 30, 'data1'],[20, 40, 10, 'data2'],[30, 60, 20, 'data3'],[40, 80, 40, 'data4'],[50, 100, 30, 'data5'],[60, 120, 50, 'data6']
];var sizeValue = '57%';
var symbolSize = 2.5;
const echartsData = reactive({option: {// 图表标题title: {text: 'ECharts 3D Scatter Plot Demo',subtext: '3D散点图绘制情况',left: 'center'},// 图表类型,3D散点图series: [{type: 'scatter3D',// 数据data: data,// 点大小symbolSize: 10,// 控制点的透明度itemStyle: {opacity: 0.8}},{type: 'scatter',symbolSize: symbolSize,xAxisIndex: 0,yAxisIndex: 0,encode: {x: 'Income',y: 'Life Expectancy',tooltip: [0, 1, 2, 3, 4]}},{type: 'scatter',symbolSize: symbolSize,xAxisIndex: 1,yAxisIndex: 1,encode: {x: 'Country',y: 'Income',tooltip: [0, 1, 2, 3, 4]}},{type: 'scatter',symbolSize: symbolSize,xAxisIndex: 2,yAxisIndex: 2,encode: {x: 'Income',y: 'Population',tooltip: [0, 1, 2, 3, 4]}},{type: 'scatter',symbolSize: symbolSize,xAxisIndex: 3,yAxisIndex: 3,encode: {x: 'Life Expectancy',y: 'Population',tooltip: [0, 1, 2, 3, 4]}}],// X轴的3D坐标系,相关设置xAxis3D: {type: 'value',scale: true},// Y轴的3D坐标系,相关设置yAxis3D: {type: 'value',scale: true},// Z轴的3D坐标系,相关设置zAxis3D: {type: 'value',scale: true},// 旋转3D图表grid3D: {viewControl: {// 摄像机视角alpha: 45,beta: 30}},grid: [{ left: '2%', width: '20%', bottom: sizeValue },{ left: '80%', width: '20%', bottom: sizeValue },{ left: '2%', width: '20%', top: sizeValue },{ left: '80%', width: '20%', top: sizeValue }],xAxis: [{type: 'value',gridIndex: 0,name: 'Income',axisLabel: { rotate: 50, interval: 0 }},{type: 'category',gridIndex: 1,name: 'Country',boundaryGap: false,axisLabel: { rotate: 50, interval: 0 }},{type: 'value',gridIndex: 2,name: 'Income',axisLabel: { rotate: 50, interval: 0 }},{type: 'value',gridIndex: 3,name: 'Life Expectancy',axisLabel: { rotate: 50, interval: 0 }}],yAxis: [{ type: 'value', gridIndex: 0, name: 'Life Expectancy' },{ type: 'value', gridIndex: 1, name: 'Income' },{ type: 'value', gridIndex: 2, name: 'Population' },{ type: 'value', gridIndex: 3, name: 'Population' }],dataset: {dimensions: ['Income','Life Expectancy','Population','Country',{ name: 'Year', type: 'ordinal' }],source: []},}
})
const { option } = toRefs(echartsData);
const echartsRef = ref<string>();
let echartInstance;watch(chartData,(newValue) => {if (newValue && newValue.data?.length) {option.value.dataset.source = newValue.data}},{ deep: true, immediate: true }
)watch(option,(newValue) => {echartInstance.setOption(newValue);},{ deep: true }
)onMounted(() => {echartInstance = echarts.init(echartsRef.value, 'macarons', { renderer: 'webgl' });echartInstance.setOption(option.value);
});
</script><style lang="less" scoped>
.content {width: 100%;height: 90vh;
}
</style>
  • 使用前需要先安装一下依赖
    npm install echarts-gl --saveyarn add echarts-gl

  • 安装完成后,在代码中引入 echarts-gl 包:

    import echarts from 'echarts';
    import 'echarts-gl';
    
  • 接下来,你就可以在代码中使用 scatter3D 组件了,具体的使用方法可以参考官方文档。

控制台如果有提示: geo3D exists,是因为你的版本太低了,可以升级一下

  • 升级
    npm update echarts-glyarn upgrade echarts-gl

  • 如果你是通过 CDN 引入 echarts 和 echarts-gl,可以尝试使用最新的链接,如:

    <script src="https://cdn.jsdelivr.net/npm/echarts@latest/dist/echarts.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/echarts-gl@latest/dist/echarts-gl.min.js"></script>
    
  • 如果以上方法无效,你还可以尝试手动清空浏览器缓存并重新加载页面,或者删除旧版本 echarts-gl,重新安装最新版本。

Echarts 3D散点图相关推荐

  1. echarts 3d 散点图 颜色条件查询

    原文链接: echarts 3d 散点图 颜色条件查询 上一篇: layui 简单表格 下一篇: echarts rgb hsv 颜色空间 $.get('data/asset/data/life-ex ...

  2. echarts 3D立体图(江苏版)

    npm install echarts@4.9.0 echarts-gl@1.0.1 --legacy-peer-deps 安装echarts插件和echarts 3D地图插件 配置main.js i ...

  3. R语言使用scatterplot3d包的scatterplot3d函数可视化3D散点图(3D scatter plots)、在3D散点图中添加垂直线和数据点描影、3D图中添加回归平面

    R语言使用scatterplot3d包的scatterplot3d函数可视化3D散点图(3D scatter plots).在3D散点图中添加垂直线和数据点描影.3D图中添加回归平面(overlaid ...

  4. R语言使用car包的scatter3d函数可视化可以交互旋转的3D散点图(Spinning 3D scatter plot by the scatter3d() function of car)

    R语言使用car包的scatter3d函数可视化可以交互旋转的3D散点图(Spinning 3D scatter plot produced by the scatter3d() function i ...

  5. R语言可视化:散点图、散点图和折线图(line charts)、3D散点图、旋转3D散点图、气泡图、corrgram包可视化相关性矩阵、马赛克图( Mosaic plots)、hexbin、密度图

    R语言可视化:散点图.散点图和折线图(line charts).3D散点图.旋转3D散点图.气泡图.corrgram包可视化相关性矩阵.马赛克图( Mosaic plots).hexbin.密度图 目 ...

  6. R语言使用plotly绘制3D散点图实战

    R语言使用plotly绘制3D散点图实战 目录 R语言使用plotly绘制3D散点图实战 #仿真数据 #plotly绘制3D散点图 #仿真数据 set.seed(41

  7. matlab传递闭包动态聚类图,用SPSS制作3D散点图全方位动态展示K均值聚类效果

    SPSS系统聚类输出的树状图广受用户喜爱,二阶聚类也可以输出一系列美观的可视化图形用来观察聚类效果,但我们发现Kmeans均值聚类没有提供可视化程度高的图形,那怎么办,我们自己来制作. 数据小兵推荐使 ...

  8. python如何做散点图-matplotlib在python上绘制3D散点图实例详解

    大家可以先参考官方演示文档: 效果图: ''' ============== 3D scatterplot ============== Demonstration of a basic scatte ...

  9. python画三维温度散点图-matplotlib在python上绘制3D散点图实例详解

    大家可以先参考官方演示文档: 效果图: ''' ============== 3D scatterplot ============== Demonstration of a basic scatte ...

最新文章

  1. 在VMware Workstation中安装Ubuntu设置网络连接
  2. 使用adb install 时 提示error: more than one device and emulator
  3. 最全面 Nginx 入门教程 + 常用配置解析
  4. 手把手从python安装到setuptools、pip工具安装
  5. Autofac IoC容器基本使用步骤【1】
  6. mysql二进制备份配置_mysql针对于二进制数据的备份
  7. sme是什么职位_学云计算能从事哪些岗位 未来职业发展是什么样
  8. 《SAP后勤模块实施攻略—SAP在生产、采购、销售、物流中的应用》——2.7 可配置制造...
  9. 自然语言处理——第一章 绪论
  10. 系统对接方案_劳务实名制管理系统解决用工问题
  11. vue+i18n 切换语言后无法刷新数据 的 解决方案
  12. 线程的优先级(详细)
  13. ubuntu 安装uget 和 flashgot 下载软件相当于windows中的迅雷
  14. java语言实现菜单代码_java微信开发API微信自定义个性化菜单实现实例代码
  15. Acwing 1227. 分巧克力
  16. 汤小小账号变现课第2期,今日头条、小红书、公众号,1000粉也可以接广告变现
  17. vim自定义设置-配置文件
  18. 微信小程序实现短信认证功能
  19. 京东API开发系列:京东按关键字搜索商品 API / item_search - 按关键字搜索商品 API返回值说明
  20. 利用组合模式来实现组件处理器的工程实践

热门文章

  1. PHP 实现CSV格式的上传下载(CI框架)
  2. 【Java】代码中的安全漏洞解决合集(更新中)
  3. DBeaver免费开源数据库安装教程
  4. 完全背包问题【zzh制作】
  5. 今日作息及食谱(8.6)
  6. ROS-虚拟机Ubuntu中安装ros系统
  7. xunsearch php,xunsearch
  8. os 学习日记之 os x yosemite 安装win7 双系统
  9. 详解数据存储 网络数据传输 大端模式和小端模式
  10. Excel使用公式向导统计个数,不会函数也没关系