zoukankan      html  css  js  c++  java
  • react 项目使用 echarts-wordcloud(文字云)

    一、安装echarts 和 echarts-wordcloud

    npm install echarts --save
    
    npm install echarts-wordcloud --save

    二、项目中引入echarts 和 echarts-wordcloud

    import echarts from 'echarts'
    
    import 'echarts-wordcloud'

    三、在生命周期 componentDidMount 中初始化echarts

    componentDidMount() {
        this.kpiEcharts = echarts.init(this.kpiRef.current);
        this.kpiEcharts.on('click', (params) => {
            this.props.onCkick(params.data)
        });
        let _this = this
        window.addEventListener("resize",function (){
            _this.kpiEcharts.resize();
        });
        this.setState({
            keyWordsList: this.props.keyWordsList
        })
        this.initChartOption()
    }
    
    
    initChartOption() {
        var maskImage = new Image();//可以根据图片形状生成有形状的词云图
        maskImage.src=require('@/static/img/goToTop.png')
        let option = {
            backgroundColor: '#F7F7F7',
            tooltip: {
                trigger: 'item',
                axisPointer: {
                type: 'none'
                },
                position: "top",
                formatter: function({name, value}) {
                return `${name}:${value.toFixed(2)}`
                }
            },
            series: [{
                name: '搜索指数',
                left: 'center',
                top: 'center',
                 '100%',
                height: '100%',
                right: null,
                bottom: null,
                type: 'wordCloud',
                size: ['9%', '99%'],
                sizeRange: [20, 100],
                //textRotation: [0, 45, 90, -45],
                rotationRange: [-45, 90],
                //shape: 'circle',
                // gridSize: 10,
                
                // shape: 'triangle',
                maskImage: maskImage,
                textPadding: 0,
                autoSize: {
                    enable: true,
                    minSize: 6
                },
                textStyle: {
                    normal: {
                        color: function() {
                            return 'rgb(' + [
                                Math.round(Math.random() * 160),
                                Math.round(Math.random() * 160),
                                Math.round(Math.random() * 160)
                            ].join(',') + ')';
                        }
                    },
                    emphasis: {
                        shadowBlur: 10,
                        shadowColor: '#FF6A00'
                    }
                },
                data: [
                    {
                        name: 'Authentication',
                        value: 10000,
                        textStyle: {
                        normal: {
                            color: 'black'
                        },
                        emphasis: {
                            color: 'red'
                        }
                        }
                    },
                    {
                        name: 'Streaming of segmented content',
                        value: 6181
                    },
                    {
                        name: 'Amy Schumer',
                        value: 4386
                    },
                    {
                        name: 'Jurassic World',
                        value: 4055
                    },
                    {
                        name: 'Charter Communications',
                        value: 2467
                    },
                    {
                        name: 'Chick Fil A',
                        value: 2244
                    },
                    {
                        name: 'Planet Fitness',
                        value: 1898
                    },
                    {
                        name: 'Pitch Perfect',
                        value: 1484
                    },
                    {
                        name: 'Express',
                        value: 1112
                    },
                    {
                        name: 'Home',
                        value: 965
                    },
                    {
                        name: 'Johnny Depp',
                        value: 847
                    },
                    {
                        name: 'Lena Dunham',
                        value: 582
                    },
                    {
                        name: 'Lewis Hamilton',
                        value: 555
                    },
                    {
                        name: 'KXAN',
                        value: 550
                    },
                    {
                        name: 'Mary Ellen Mark',
                        value: 462
                    },
                    {
                        name: 'Farrah Abraham',
                        value: 366
                    },
                    {
                        name: 'Rita Ora',
                        value: 360
                    },
                    {
                        name: 'Serena Williams',
                        value: 282
                    },
                    {
                        name: 'NCAA baseball tournament',
                        value: 273
                    },
                    {
                        name: 'Point Break',
                        value: 265
                    }
                ]
                
            }]
        };
        // this.kpiEcharts.setOption(option, true);
        let _this = this
        maskImage.onload = function() {
            _this.kpiEcharts.setOption(option, true);
        };
    }

     四、效果如下

  • 相关阅读:
    团队项目 NABCD介绍
    java web项目通过外网ip访问
    第七周总结
    全球疫情可视化展示
    第六周总结
    软工小队——团队介绍
    Android端疫情数据统计与现实——Android连接Mysql
    android SDK SDK Manager.exe 无法打开,一闪而过最终解决办法 (转)
    第五周总结
    Java代码编写规范(转)
  • 原文地址:https://www.cnblogs.com/art-poet/p/13936076.html
Copyright © 2011-2022 走看看