ECharts个性化图表样式的实现


1.绘制饼状图

option ={
    series : [
        {
            name: '访问来源',
            type: 'pie',//饼状图类型
            radius: '55%',//图表半径
            data:[
                {value:235, name:'视频广告'},
                {value:274, name:'联盟广告'},
                {value:310, name:'邮件营销'},
                {value:335, name:'直接访问'},
                {value:400, name:'搜索引擎'}
            ]
        }
    ]
}

2.绘制南丁格尔图

ECharts 中的 饼图 也支持通过设置 roseType 显示成南丁格尔图

option ={
    series : [
        {
            name: '访问来源',
            type: 'pie',//饼状图类型
            radius: '55%',//图表半径
            data:[
                {value:235, name:'视频广告'},
                {value:274, name:'联盟广告'},
                {value:310, name:'邮件营销'},
                {value:335, name:'直接访问'},
                {value:400, name:'搜索引擎'}
            ],
            roseType: 'angle',//玫瑰图类型
        }
    ]
}

3.配置阴影

option ={
    series : [
        {
            name: '访问来源',
            type: 'pie',//饼状图类型
            radius: '55%',//图表半径
            data:[
                {value:235, name:'视频广告'},
                {value:274, name:'联盟广告'},
                {value:310, name:'邮件营销'},
                {value:335, name:'直接访问'},
                {value:400, name:'搜索引擎'}
            ],
            roseType: 'angle',//玫瑰图类型
            itemStyle: {
     //normal 选项显示的是正常展示下的样式      
    normal: {
        // 阴影的大小
        shadowBlur:100,
        // 阴影水平方向上的偏移
        shadowOffsetX: 0,
        // 阴影垂直方向上的偏移
        shadowOffsetY: 0,
        // 阴影颜色
        shadowColor: 'rgba(0, 0, 0, 0.5)'
    },
    //emphasis 是当鼠标 hover 时候的高亮样式
     emphasis: {
        shadowBlur: 400,
        shadowColor: 'rgba(0, 0, 0, 0.5)'
    }
}
        }
    ]
}

4.设置深色背景和浅色标签

注意:label 和 labelLine 的样式有 normal 和 emphasis 两个状态,这与 itemStyle 相同。

option ={
    series : [
        {
            name: '访问来源',
            type: 'pie',//饼状图类型
            radius: '55%',//图表半径
            data:[
                {value:235, name:'视频广告'},
                {value:274, name:'联盟广告'},
                {value:310, name:'邮件营销'},
                {value:335, name:'直接访问'},
                {value:400, name:'搜索引擎'}
            ],
            roseType: 'angle',//玫瑰图类型
        }
    ],
    //深色主题
     backgroundColor: '#2c343c',
     //背景色设置完成后,同样将文本的样式设置为全局的文本样式
 textStyle: {
        color: 'rgba(255, 255, 255, 0.3)'
    },
    //每个系列的文本设置在 label.normal.textStyle
    label: {
    normal: {
        textStyle: {
            color: 'rgba(255, 255, 255, 0.3)'
        }
    }
},
//标签的视觉引导线的颜色设置为浅色
labelLine: {
    normal: {
        lineStyle: {
            color: 'rgba(255, 255, 255, 0.3)'
        }
    }
}
}

5.扇形的颜色

 (1)通过设置颜色实现图形的层次感和空间感。

option ={
    series : [
        {
            name: '访问来源',
            type: 'pie',//饼状图类型
            radius: '55%',//图表半径
            data:[
                {value:235, name:'视频广告'},
                {value:274, name:'联盟广告'},
                {value:310, name:'邮件营销'},
                {value:335, name:'直接访问'},
                {value:400, name:'搜索引擎'}
            ],
            roseType: 'angle',//玫瑰图类型
            
                itemStyle: {
    normal: {
        // 设置扇形的颜色
        color: '#c23531',
        shadowBlur: 200,
        shadowColor: 'rgba(0, 0, 0, 0.5)'
    }
},
        }
    ],

    //深色主题
     backgroundColor: '#2c343c',
     //背景色设置完成后,同样将文本的样式设置为全局的文本样式
 textStyle: {
        color: 'rgba(255, 255, 255, 0.3)'
    },
    //每个系列的文本设置在 label.normal.textStyle
    label: {
    normal: {
        textStyle: {
            color: 'rgba(255, 255, 255, 0.3)'
        }
    }
},
//标签的视觉引导线的颜色设置为浅色
labelLine: {
    normal: {
        lineStyle: {
            color: 'rgba(255, 255, 255, 0.3)'
        }
    }
}
}

(2)通过 visualMap 组件将数值的大小映射到明暗度

option ={
  backgroundColor: '#2c343c',
  visualMap: {
    // 不显示 visualMap 组件,只用于明暗度的映射
    show: false,
    // 映射的最小值为 80
    min: 80,
    // 映射的最大值为 600
    max: 800,
    inRange: {
        // 明暗度的范围是 0 到 1
        colorLightness: [0, 1]
    }
},
    series : [
        {
            name: '访问来源',
            type: 'pie',//饼状图类型
            radius: '55%',//图表半径
            data:[
                {value:235, name:'视频广告'},
                {value:274, name:'联盟广告'},
                {value:310, name:'邮件营销'},
                {value:335, name:'直接访问'},
                {value:400, name:'搜索引擎'}
            ],
            roseType: 'angle',//玫瑰图类型
             itemStyle: {
        normal: {
          color: '#c23531',
          shadowBlur: 200,
          shadowColor: 'rgba(0, 0, 0, 0.5)'
        }
      }
        }
    ],

    //每个系列的文本设置在 label.normal.textStyle
    label: {
    normal: {
        textStyle: {
            color: 'rgba(255, 255, 255, 0.3)'
        }
    }
},
//标签的视觉引导线的颜色设置为浅色
labelLine: {
    normal: {
        lineStyle: {
            color: 'rgba(255, 255, 255, 0.3)'
        }
    }
}
}