插件窝 干货文章 如何用ECharts绘制发光3D图表?

如何用ECharts绘制发光3D图表?

ECharts 光晕 图表 效果 425    来源:    2025-03-19

要使用ECharts绘制发光3D图表,你可以结合ECharts的3D图表功能和自定义的视觉样式来实现发光效果。以下是一个简单的步骤指南,帮助你实现这一目标:

1. 引入ECharts和ECharts GL

ECharts GL是ECharts的扩展库,专门用于绘制3D图表。首先,你需要在HTML文件中引入ECharts和ECharts GL的库文件。

<script src="https://cdn.jsdelivr.net/npm/echarts@5.3.2/dist/echarts.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/echarts-gl@2.0.8/dist/echarts-gl.min.js"></script>

2. 创建一个容器

在HTML中创建一个容器来放置图表。

<div id="chart-container" style="width: 600px;height:400px;"></div>

3. 初始化ECharts实例

在JavaScript中初始化ECharts实例,并配置3D图表。

var myChart = echarts.init(document.getElementById('chart-container'));

4. 配置3D图表

配置一个简单的3D柱状图,并添加发光效果。

var option = {
    tooltip: {},
    backgroundColor: '#000', // 设置背景为黑色以突出发光效果
    xAxis3D: {
        type: 'value'
    },
    yAxis3D: {
        type: 'value'
    },
    zAxis3D: {
        type: 'value'
    },
    grid3D: {
        viewControl: {
            // 控制视角
            alpha: 20,
            beta: 30
        },
        light: {
            main: {
                intensity: 1.5, // 增加光照强度
                shadow: true
            },
            ambient: {
                intensity: 0.5
            }
        }
    },
    series: [{
        type: 'bar3D',
        data: [
            [0, 0, 10],
            [1, 0, 20],
            [2, 0, 30],
            [0, 1, 40],
            [1, 1, 50],
            [2, 1, 60]
        ],
        shading: 'realistic', // 使用真实感渲染
        itemStyle: {
            color: '#00FF00', // 设置柱状图的颜色
            opacity: 0.8,
            emphasis: {
                color: '#00FF00', // 高亮颜色
                opacity: 1
            }
        },
        label: {
            show: false
        },
        silent: true
    }]
};

myChart.setOption(option);

5. 添加发光效果

为了实现发光效果,你可以使用ECharts的postEffect配置项来添加光晕效果。

option.postEffect = {
    enable: true,
    bloom: {
        enable: true,
        bloomIntensity: 0.1, // 光晕强度
        bloomThreshold: 0.5, // 光晕阈值
        bloomRadius: 10 // 光晕半径
    }
};

myChart.setOption(option);

6. 渲染图表

最后,调用setOption方法渲染图表。

myChart.setOption(option);

7. 完整代码示例

以下是完整的HTML和JavaScript代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>3D Glow Chart with ECharts</title>
    <script src="https://cdn.jsdelivr.net/npm/echarts@5.3.2/dist/echarts.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/echarts-gl@2.0.8/dist/echarts-gl.min.js"></script>
</head>
<body>
    <div id="chart-container" style="width: 600px;height:400px;"></div>
    <script>
        var myChart = echarts.init(document.getElementById('chart-container'));

        var option = {
            tooltip: {},
            backgroundColor: '#000',
            xAxis3D: {
                type: 'value'
            },
            yAxis3D: {
                type: 'value'
            },
            zAxis3D: {
                type: 'value'
            },
            grid3D: {
                viewControl: {
                    alpha: 20,
                    beta: 30
                },
                light: {
                    main: {
                        intensity: 1.5,
                        shadow: true
                    },
                    ambient: {
                        intensity: 0.5
                    }
                }
            },
            series: [{
                type: 'bar3D',
                data: [
                    [0, 0, 10],
                    [1, 0, 20],
                    [2, 0, 30],
                    [0, 1, 40],
                    [1, 1, 50],
                    [2, 1, 60]
                ],
                shading: 'realistic',
                itemStyle: {
                    color: '#00FF00',
                    opacity: 0.8,
                    emphasis: {
                        color: '#00FF00',
                        opacity: 1
                    }
                },
                label: {
                    show: false
                },
                silent: true
            }],
            postEffect: {
                enable: true,
                bloom: {
                    enable: true,
                    bloomIntensity: 0.1,
                    bloomThreshold: 0.5,
                    bloomRadius: 10
                }
            }
        };

        myChart.setOption(option);
    </script>
</body>
</html>

8. 运行效果

将上述代码保存为一个HTML文件并在浏览器中打开,你将看到一个带有发光效果的3D柱状图。

9. 进一步定制

你可以根据需要进一步调整光照、颜色、光晕强度等参数,以达到最佳的视觉效果。

通过以上步骤,你可以使用ECharts和ECharts GL绘制出带有发光效果的3D图表。