v-charts简单使用

问题:v-charts拓展配置extend中的yAxis,xAxis,series...不能配置以数组的形式配置。请参考球员身价配置

<template>
    <section class="box-wrap">
        <div class="box" ref="boxRef">
            <p class="title">进球时间分布</p>
            <ve-histogram :width="`${width}px`" height="110px" :data="analyseGoal.chartData" :settings="chartSettings" :extend="chartExtend"></ve-histogram>
        </div>
        <p class="model-title">球员身价TOP3</p>
        <div class="box" ref="boxRef">
            <ve-histogram :width="`${width}px`" height="150px" :data="analysePlayer.chartData" :settings="chartSettings1" :extend="chartExtend1" :mark-line="markLine"></ve-histogram>
        </div>
    </section>
</template>

<style>
.box-wrap{
    padding: 30px;
    background: #fff;
    .box{
        width: 100%;
        min-height: 274px;
        overflow: hidden;
        background: #fff;
        box-shadow: 0 2px 10px 0 rgba(0,0,0,0.06);
        border-radius: 10px;
        padding: 20px 0;
        /* margin: 30px 0; */
        .title{
            font-family: PingFangSC-Semibold;
            font-size: 24px;
            color: #606060;
            margin: 0 20px;
        }
    }
    .model-title{
        font-family: PingFangSC-Semibold;
        font-size: 32px;
        color: #303030;
        line-height: 28px;
        padding: 30px 0;
    }
}
</style>

<script>
    export default {
        data () {
            const _this = this;
            this.chartSettings = {
                legendLimit: 0,
            };
            this.chartExtend = {
                color: ['#5E6E8C'],
                legend: {
                    show: false
                },
                tooltip: {
                    show: false
                },
                yAxis: {
                    axisLabel: {show: false},
                    splitLine: {show: false},
                    axisLine: {show: false},
                    axisTick: {show: false},
                    splitArea: {show: false},
                    type : 'value',
                },
                xAxis:{
                    axisLabel: {
                        interval: 0,
                        color: 'rgba(48,48,48, .5)',
                        fontSize: 10,
                        fontFamily: 'PingFangSC-Regular',
                    },
                    axisLine: {
                        show: true,
                        lineStyle: {
                            fontSize: 14,
                            color: '#DADADA', // 颜色
                            width: 1, // 粗细
                        },
                        
                    },
                },
                series: {
                    barWidth: 18,
                    itemStyle: {
                        barBorderRadius: [5, 5, 0, 0],
                        color: function(params) {
                            return _this.isMax(params.data) ? '#73A0FA' : '#5E6E8C'; 
                        }
                    },
                    label: {
                        show: true,
                        position: 'top',
                        fontFamily: 'DINCondensed-Bold',
                        color: function(params) {
                            return _this.isMax(params.data) ? '#73A0FA' : '#5E6E8C'; 
                        }
                    }
                },
                grid: {
                    top: 20,
                    left: 10,
                    right: 10,
                    bottom: 0,
                },
                // backgroundColor: 'red'
            };
            this.chartSettings1 = {
                dimension:['name', 'rank'],
            };
            const colorList = ['#E83939', '#EC6B45', '#F4CA47', '#5E6E8C'];
            this.chartExtend1 = {
                // 标题
                title: {
                    show: true,
                    text: '单位:万欧元',
                    right: 5,
                    textStyle: {
                        color: '#909090',
                        fontSize: 10,
                        fontFamily: 'PingFangSC-Regular',
                    }
                },
                // 颜色
                color: colorList,
                legend: {
                    show: false
                },
                tooltip: {
                    show: false
                },
                yAxis: {
                    splitLine: {show: false},
                    type : 'value',
                    axisLine: {
                        show: true,
                        lineStyle: {
                            fontSize: 14,
                            color: '#DADADA', // 颜色
                            width: 1, // 粗细
                        },
                    },
                    axisLabel: {
                        show: true,
                        color: '#A5A5A5',
                        fontSize: 8
                    }
                },
                // 隐藏右侧y轴
                'yAxis.1.axisLine': {
                    show: false
                },
                'xAxis.0.axisLabel': {
                    interval: 0,
                    color: '#303030',
                    fontSize: 12,
                    fontFamily: 'PingFangSC-Regular',
                },
                'xAxis.0.axisLine': {
                    show: true,
                    lineStyle: {
                        fontSize: 14,
                        color: '#DADADA', // 颜色
                        width: 1, // 粗细
                    },
                },
                'xAxis.1.axisLabel': {
                    interval: 0,
                    color: '#909090',
                    fontSize: 10,
                    fontFamily: 'PingFangSC-Regular',
                },
                'xAxis.1.axisLine': {
                    show: true,
                    lineStyle: {
                        fontSize: 14,
                        color: '#DADADA', // 颜色
                        width: 1, // 粗细
                    },
                },
                // 双轴的位置 top | bottom
                'xAxis.0.position': 'bottom',
                'xAxis.1.position': 'bottom',
                // x轴的位置相对偏移
                'xAxis.1.offset': 15,
                series: {
                    barWidth: 18,
                    itemStyle: {
                        barBorderRadius: [5, 5, 0, 0],
                        color: function(params) {
                            return colorList[params.dataIndex]; 
                        }
                    },
                    label: {
                        show: true,
                        position: 'top',
                        color: '#303030',
                        fontFamily: 'DINCondensed-Bold'
                    },
                },
                grid: {
                    top: 20,
                    left: 10,
                    right: 10,
                    bottom: 0,
                },
                // backgroundColor: 'red'
            };

            // 基准线 | 平均值
            this.markLine = {
                symbol: 'none', // 标线两端的标记类型
                silent: true, // 图形是否不响应和触发鼠标事件
                itemStyle: {
                    normal:{ show: true, color: '#E9E9E9'},
                },
                data:[
                    {
                        yAxis: 3302, // 平均值
                        label: { // 基准线右侧的value值
                            show: false
                        },
                    }
                ],
            };

            return {
                analysePlayer: {
                    chartData: {
                        columns: ['name', 'value'],
                        rows: [
                            { 'name': '贝克汉姆', 'value': 9970, 'rank': '第一名' },
                            { 'name': '梅西', 'value': 9735, 'rank': '第二名' },
                            { 'name': '奥斯卡', 'value': 5760, 'rank': '第三名' },
                            { 'name': '球队均值', 'value': 3302, 'rank': '' },
                        ],
                    },
                },
                analyseGoal: {
                    chartData: {
                        columns: ['time', 'goalNum'],
                        rows: [
                            { 'time': '0-15', 'goalNum': 1 },
                            { 'time': '15-30', 'goalNum': 1 },
                            { 'time': '30-45', 'goalNum': 0 },
                            { 'time': '45+', 'goalNum': 2 },
                            { 'time': '45-60', 'goalNum': 4 },
                            { 'time': '60-75', 'goalNum': 1 },
                            { 'time': '75-90', 'goalNum': 0 },
                            { 'time': '90+', 'goalNum': 0 },
                        ],
                    },
                },
                width: 0,
            }
        },
        mounted() {
            const _that = this;
            setTimeout(() => {
                _that.width = _that.$refs.boxRef.clientWidth || 0;
                console.log('width:', _that.width)
            }, 100)
        },
        methods: {
            isMax(val) {
                return !this.analyseGoal.chartData.rows.find(p => Number(p.goalNum) > Number(val));
            }
        }
    }
</script>
进球时间分布.png
球员身价.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容

  • This chapter covers the basic setup for using this librar...
    ngugg阅读 990评论 0 1
  • 一,v-charts简介 在使用 echarts 生成图表时,经常需要做繁琐的数据类型转化、修改复杂的配置项,v-...
    美人宋阅读 58,929评论 0 14
  • OC中如何配置 Chart 近期项目需要使用到K线图、折线图等图表功能,因此接触到了Charts这个框架,不得不说...
    Peter_song阅读 5,073评论 1 7
  • 每日推荐 这篇文章主要介绍了微信小程序图表插件(wx-charts)实例代码,具有一定的参考价值,感兴趣的小伙伴们...
    极客小寨阅读 3,948评论 5 1
  • 20201214 新增 推荐使用官推的 vue-echarts,“亲儿子” 哈哈 待遇确实是好 vue-echar...
    sunxiaochuan阅读 12,418评论 7 3