引言

Echarts是一款强大的可视化库,它可以帮助我们轻松地将数据转化为各种图表,从而更直观地展示数据背后的信息。本文将详细介绍Echarts支持的30种实用统计图类型,帮助您更好地理解和应用数据分析。

1. 折线图

折线图是Echarts中最基本的图表类型之一,适用于展示数据随时间或其他连续变量的变化趋势。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '折线图示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'line',
        data: [5, 20, 36, 10, 10, 20]
    }]
};
myChart.setOption(option);

2. 柱状图

柱状图适用于比较不同类别或组的数据。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '柱状图示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
    },
    yAxis: {},
    series: [{
        name: '销量',
        type: 'bar',
        data: [5, 20, 36, 10, 10, 20]
    }]
};
myChart.setOption(option);

3. 饼图

饼图适用于展示各部分占整体的比例。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '饼图示例'
    },
    tooltip: {
        trigger: 'item',
        formatter: "{a} <br/>{b}: {c} ({d}%)"
    },
    legend: {
        orient: 'vertical',
        left: 10,
        data: ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子']
    },
    series: [
        {
            name: '访问来源',
            type: 'pie',
            radius: '55%',
            center: ['50%', '60%'],
            data: [
                {value: 5, name: '衬衫'},
                {value: 20, name: '羊毛衫'},
                {value: 36, name: '雪纺衫'},
                {value: 10, name: '裤子'},
                {value: 10, name: '高跟鞋'},
                {value: 20, name: '袜子'}
            ],
            emphasis: {
                itemStyle: {
                    shadowBlur: 10,
                    shadowOffsetX: 0,
                    shadowColor: 'rgba(0, 0, 0, 0.5)'
                }
            }
        }
    ]
};
myChart.setOption(option);

4. 散点图

散点图适用于展示两个变量之间的关系。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '散点图示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        type: 'value'
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        name: '销量',
        type: 'scatter',
        data: [[10, 20], [20, 10], [30, 30], [40, 20], [50, 10]]
    }]
};
myChart.setOption(option);

5. K线图

K线图适用于展示股票、期货等金融市场的价格波动。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: 'K线图示例'
    },
    tooltip: {
        trigger: 'axis',
        axisPointer: {
            type: 'cross',
            label: {
                backgroundColor: '#6a7985'
            }
        }
    },
    legend: {
        data:['销量']
    },
    xAxis: {
        type: 'category',
        data: ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        name: '销量',
        type: 'k',
        data: [
            [10, 20, 30, 40, 50],
            [20, 30, 40, 50, 60],
            [30, 40, 50, 60, 70],
            [40, 50, 60, 70, 80],
            [50, 60, 70, 80, 90]
        ]
    }]
};
myChart.setOption(option);

6. 雷达图

雷达图适用于展示多变量之间的对比关系。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '雷达图示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        type: 'category',
        data: ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        name: '销量',
        type: 'radar',
        data: [
            [10, 20, 30, 40, 50, 60]
        ]
    }]
};
myChart.setOption(option);

7. 漏斗图

漏斗图适用于展示数据筛选和过滤的过程。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '漏斗图示例'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{a} <br/>{b}: {c}%'
    },
    legend: {
        orient: 'vertical',
        left: 10,
        data: ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子']
    },
    series: [
        {
            name: '访问来源',
            type: 'funnel',
            left: '10%',
            top: 60,
            bottom: 0,
            width: '80%',
            sort: 'descending',
            min: 0,
            max: 100,
            label: {
                position: 'left',
                formatter: '{b}: {c}%'
            },
            emphasis: {
                itemStyle: {
                    opacity: 0.8
                }
            },
            data: [
                {value: 60, name: '衬衫'},
                {value: 40, name: '羊毛衫'},
                {value: 20, name: '雪纺衫'},
                {value: 10, name: '裤子'},
                {value: 5, name: '高跟鞋'},
                {value: 5, name: '袜子'}
            ]
        }
    ]
};
myChart.setOption(option);

8. 平行坐标图

平行坐标图适用于展示多变量之间的对比关系。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '平行坐标图示例'
    },
    tooltip: {},
    legend: {
        data:['销量']
    },
    xAxis: {
        type: 'category',
        data: ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子']
    },
    yAxis: {
        type: 'value'
    },
    series: [{
        name: '销量',
        type: 'parallel',
        data: [
            [10, 20, 30, 40, 50, 60]
        ]
    }]
};
myChart.setOption(option);

9. 仪表盘

仪表盘适用于展示实时数据或关键指标。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '仪表盘示例'
    },
    tooltip: {
        formatter: '{a} <br/>{b}: {c}'
    },
    series: [
        {
            name: '业务指标',
            type: 'gauge',
            center: ['50%', '60%'],
            radius: '75%',
            startAngle: 90,
            endAngle: -270,
            axisLine: {
                show: true,
                lineStyle: {
                    color: [
                        [0.2, '#f00'],
                        [0.8, '#0ff'],
                        [1, '#00f']
                    ],
                    width: 10
                }
            },
            axisTick: {
                show: false
            },
            splitLine: {
                show: false
            },
            axisLabel: {
                show: false
            },
            pointer: {
                show: false
            },
            title: {
                show: false
            },
            detail: {
                valueAnimation: true,
                formatter: '{value}%',
                color: 'auto'
            },
            data: [
                {
                    value: 50,
                    name: '完成度'
                }
            ]
        }
    ]
};
myChart.setOption(option);

10. 词云图

词云图适用于展示关键词的分布情况。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '词云图示例'
    },
    tooltip: {},
    series: [
        {
            type: 'wordCloud',
            shape: 'circle',
            sizeRange: [12, 60],
            rotationRange: [-90, 90],
            gridSize: 8,
            wordStyle: {
                color: function () {
                    return 'rgb(' + [
                        Math.round(Math.random() * 160),
                        Math.round(Math.random() * 160),
                        Math.round(Math.random() * 160)
                    ].join(',') + ')';
                }
            },
            data: [
                {
                    name: 'ECharts',
                    value: 10000
                },
                {
                    name: 'large',
                    value: 6181
                },
                {
                    name: 'data',
                    value: 6049
                },
                {
                    name: 'analysis',
                    value: 5948
                },
                {
                    name: ' visualization',
                    value: 5800
                },
                {
                    name: 'shujuku',
                    value: 5562
                },
                {
                    name: 'bigdata',
                    value: 5530
                },
                {
                    name: 'tool',
                    value: 5420
                },
                {
                    name: 'javascript',
                    value: 5378
                },
                {
                    name: 'api',
                    value: 5239
                },
                {
                    name: 'echarts',
                    value: 5215
                },
                {
                    name: 'chart',
                    value: 5210
                },
                {
                    name: 'effect',
                    value: 5194
                },
                {
                    name: 'javascript',
                    value: 5189
                },
                {
                    name: 'plugin',
                    value: 5164
                },
                {
                    name: 'application',
                    value: 5161
                },
                {
                    name: 'progress',
                    value: 5134
                },
                {
                    name: 'visual',
                    value: 5090
                },
                {
                    name: 'browser',
                    value: 5088
                },
                {
                    name: 'module',
                    value: 5086
                },
                {
                    name: 'plugin',
                    value: 5085
                },
                {
                    name: 'demo',
                    value: 5083
                },
                {
                    name: 'example',
                    value: 5082
                },
                {
                    name: 'canvas',
                    value: 5080
                },
                {
                    name: 'interface',
                    value: 5078
                },
                {
                    name: 'magic',
                    value: 5076
                },
                {
                    name: 'packaging',
                    value: 5073
                },
                {
                    name: 'pack',
                    value: 5071
                },
                {
                    name: 'tool',
                    value: 5068
                },
                {
                    name: 'packaging',
                    value: 5066
                },
                {
                    name: 'pack',
                    value: 5064
                },
                {
                    name: 'tool',
                    value: 5062
                },
                {
                    name: 'packaging',
                    value: 5060
                },
                {
                    name: 'pack',
                    value: 5058
                },
                {
                    name: 'tool',
                    value: 5056
                },
                {
                    name: 'packaging',
                    value: 5054
                },
                {
                    name: 'pack',
                    value: 5052
                },
                {
                    name: 'tool',
                    value: 5050
                }
            ]
        }
    ]
};
myChart.setOption(option);

11. 热力图

热力图适用于展示数据的热度分布。

// 示例代码
var myChart = echarts.init(document.getElementById('main'));
var option = {
    title: {
        text: '热力图示例'
    },
    tooltip: {
        trigger: 'item',
        formatter: '{b} <br/>{c}'
    },
    xAxis: {
        type: 'category',
        data: ['衬衫','羊毛衫','雪纺衫','裤子','高跟鞋','袜子']
    },
    yAxis: {
        type: 'category',
        data: ['周一','周二','周三','周四','周五','周六','周日']
    },
    visualMap: {
        min: 0,
        max: 100,
        left: 'left',
        top: 'bottom',
        text: ['高','低'],           // 文本,默认为数值文本
        calculable: true
    },
    series: [{
        name: '销量',
        type: 'heatmap',
        data: [
            [0, 0, 40],
            [0, 1, 35],
            [0, 2, 30],
            [0, 3, 40],
            [0, 4, 50],
            [0, 5, 30],
            [0, 6, 10],
            [1, 0, 80],
            [1, 1, 70],
            [1, 2, 60],
            [1, 3, 70],
            [1, 4, 60],
            [1, 5, 50],
            [1, 6, 40],
            [2, 0, 50],
            [2, 1, 30],
            [2, 2, 40],
            [2, 3, 50],
            [2, 4, 30],
            [2, 5, 40],
            [2, 6, 30],
            [3, 0, 60],
            [3, 1, 70],
            [3, 2, 60],
            [3, 3, 50],
            [3, 4, 40],
            [3, 5, 50],
            [3, 6, 30],
            [4, 0, 70],
            [4, 1, 60],
            [4, 2, 50],
            [4, 3, 60],
            [4, 4, 70],
            [4, 5, 60],
            [4, 6, 50],
            [5, 0, 50],
            [5, 1, 30],
            [5, 2, 40],
            [5, 3, 50],
            [5, 4, 30],
            [5, 5, 40],
            [5, 6, 20],
            [6, 0, 30],
            [6, 1, 40],
            [6, 2, 30],
            [6, 3, 40],
            [6, 4, 50],
            [6, 5, 30],
            [6, 6, 10]
        ]
    }]
};
myChart.setOption(option);

12. 堆积柱状图

堆积柱状图适用于展示多个数据系列在同一个柱状图上的叠加效果。

”`javascript // 示例代码 var myChart = echarts.init(document.getElementById(‘main’)); var option = {

title: {
    text: '堆积柱状图示例'
},
tooltip: {
    trigger: 'axis',
    axisPointer: {
        type: 'shadow'
    }
},
legend: {
    data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
},
xAxis: {
    type: 'category',
    data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
},
yAxis: {
    type: 'value'
},
series: [
    {
        name: '衬衫',
        type: 'bar',
        stack: '总量',
        data: [5, 20, 36, 10, 10, 20, 5]
    },
    {
        name: '羊毛衫',
        type: 'bar',
        stack: '总量',
        data: [10, 5, 20, 10, 10, 20, 5]
    },
    {
        name: '雪纺衫',
        type: 'bar',
        stack: '总量',
        data: [20, 20, 5, 10, 10, 20, 10]
    },
    {
        name: '裤子',
        type: 'bar',
        stack: '总量',
        data: [5, 10, 20, 10, 10, 20, 10]
    },
    {
        name: '高跟鞋',
        type: 'bar',
        stack: '总量',
        data: [10, 10, 20, 10, 10, 20, 10]