<template>
<div :class="className">
<div :id="id" class="spiritChartBox"></div>
</div>
</template> <script>
import { mapState } from "vuex";
import echarts from "@/utils/initEcharts";
import deepMerge from "@/utils/deepMerge";
export default {
name: "spiritChart",
props: {
className: {
type: String,
default: "spiritChartBox"
},
id: {
type: String,
default: "spiritChart"
},
options: {
type: Object,
default: function() {
return {};
}
}
},
data() {
return {
chart: null
};
},
watch: {
options() {
this.setOption();
},
clientWidth() {
this.setOption();
}
},
mounted() {
const self = this;
self.initChart();
},
computed: {
...mapState({
clientWidth: state => state.init.clientWidth
})
},
methods: {
initChart() {
const self = this;
self.chart = echarts.init(document.getElementById(self.id));
window.addEventListener("resize", () => {
self.chart.resize();
});
self.setOption();
},
setOption() {
const self = this;
const { options, clientWidth } = self;
const maxData = 100;
const spirit =
"image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAA+CAYAAADeQLDtAAAACXBIWXMAAAsSAAALEgHS3X78AAABpElEQVRYhe2YQU6EMBSGf4n7coTxBHoAFrhg7dxAvcEcAW/g3ABP4Ljuxkk4gNwAb1BOgHljIQ22fR2GMcb0Twjh9ZWvpS389KLve3Aq6u4GQAngzkhtKCYzsePqs5Ci7tYAXj0pjzIT1WxIUXcpgBaAYBp7KzPx7ipMmMoPAYAhzykOkgcA2DwOkgZCvHkc5CMQ4s3jIN5ZE5rnhchMUAu3DKDhpjDXEwJtADw5it9CJkfQisf3mlnpG9JZAdjJTLQhdYMhp+jSvCjqLj9ibfjUmuM09qSoOwreL9gBeoHmMhMq0YByYQDpepjah54UdacC31FzdJXocTgXgLRm18kCSn8Dwq/4c0Kamfez1nNBNjMh1nr/f0wiJEIiJEL+OkRZ4kHO0KHPSVgl2lS/GMFtqP10qDTC9BGrTHNHrkVpKF3P8a+Hf0ftm1fDf+RoU30/ltMbAXjW5s0q/STGp3H07NKNsY2jU3HFR0iEREiEREiEnAIZ7I7r82uN+yC2vUcyEObZ1H5wOlNx2+i0c00HtbAyN/+1haIysj8Up/KfPQHwBdyuiCoNTDAkAAAAAElFTkSuQmCC";
self.chart.setOption({
title: {
text: "景区饱和度",
x: "center",
y: "15%",
textStyle: {
color: "#fff",
fontSize: 24,
fontWeight: 600
}
},
tooltip: { show: false },
xAxis: {
max: maxData,
splitLine: { show: false },
axisTick: { show: false },
axisLine: { show: false },
axisLabel: { show: false }
},
yAxis: {
data: options.yAxisData || [],
inverse: true,
axisTick: { show: false },
axisLine: { show: false },
axisLabel: {
formatter: val => {
const strArr = val.split("_");
return `{a|${strArr[0]}}\n{b|${strArr[1]}}`;
},
rich: {
a: {
color: "#fff",
fontSize: 12,
lineHeight: 20
},
b: {
color: "#fbee21",
fontSize: 16
}
}
}
},
grid: { top: "25%", height: "60%", width: "43%", right: "10%" },
series: [
{
type: "pictorialBar",
symbol: spirit,
symbolRepeat: "fixed",
symbolMargin: "15%",
symbolClip: true,
symbolSize: [15, 30],
symbolBoundingData: maxData,
data: options.seriesData || [],
z: 10
},
{
type: "pictorialBar",
itemStyle: {
normal: {
opacity: 0.2
}
},
animationDuration: 0,
symbolRepeat: "fixed",
symbolMargin: "15%",
symbol: spirit,
symbolSize: [15, 30],
symbolBoundingData: maxData,
data: options.seriesData || [],
z: 5
}
]
});
}
}
};
</script> <style scoped>
.spiritChartBox {
width: 100%;
height: 100%;
}
</style>

echart 人头的更多相关文章

  1. EChart系列:在echart3中使用百度地图扩展之后,如何获取到百度地图对象

    最近做项目想要在百度地图上叠加显示echart的散点图,然后根据地图的缩放等级和区域范围要显示不同的散点图,这中间折腾了好久.功能要求包括: (1)底图使用百度地图: (2)可以在地图上叠加显示ech ...

  2. EChart使用

    EChart ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等 ...

  3. 网站中使用echart

    在网站开发中,可能会使用折线图,圆饼图,等等 来丰富网页对数据的展示,可以使用echart http://echarts.baidu.com/tutorial.html#5%20%E5%88%86%E ...

  4. WebGIS中利用AGS JS+eChart实现一些数据展示的探索

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 eChart提供了迁徙图.热点图.夜视图等跟地图能够很好的结 ...

  5. java 版本EChart使用

    一.简介 EChart是百度开发的js图表软件,用它我们可以很方便地以图形化的方式对数据进行分析统计.该种方式js在页面动态拼接json数据,再进行渲染.这种方法的优点是,灵活,可以随时进行修改.缺点 ...

  6. 百度数据可视化图表套件echart实战

    最近我一直在做数据可视化的前端工作,我用的最多的绘图工具是d3.d3有点像photoshop,功能很强大,例子也很多,但是学习成本也不低,做项目是需要较大人力投入的.3月底由在亚马逊工作的同学介绍下使 ...

  7. e-chart 本地加载中国地图

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. Echart的简单例子

    [转载自:http://echarts.baidu.com/echarts2/doc/start.html] <%@ page language="java" content ...

  9. EChart和G2比较

    1.上市时间:EChart已经久经沙场,G2算是新事物 2.源码:截止发文,在Github上 数量 EChart G2 commits 3086 8 branches 3 1 releases 43 ...

随机推荐

  1. [Beta]第二次 Scrum Meeting

    [Beta]第二次 Scrum Meeting 写在前面 会议时间 会议时长 会议地点 2019/5/6 22:00 30min 大运村公寓6F楼道 附Github仓库:WEDO 例会照片 工作情况总 ...

  2. SSM项目的搭建

    本文示例在如下环境下搭建一个Maven+Druid+SSM+Shiro+Mysql+PageHelper以及Mybatis Generator反向生成代码的项目 附上GitHub地址:https:// ...

  3. 第09组 Beta冲刺(4/4)

    队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...

  4. [LeetCode] 195. Tenth Line 第十行

    Given a text file file.txt, print just the 10th line of the file. Example: Assume that file.txt has ...

  5. 当代码上传git时,提示Repository not found The requested repository does not exist, or you do not have permission to access it. fatal: Could not read from remote repository. Please make sure you have the corre

    1.检查当前git中设置的用户名与邮箱是否与自己电脑上的一致. 看这个文件中 如果不一致,只需要把里面的内容全部复制出来添加到git(看下图位置) 这是再执行:git push -u origin m ...

  6. Influx Sql系列教程四:series/point/tag/field

    influxdb中的一条记录point,主要可以分为三类,必须存在的time(时间),string类型的tag,以及其他成员field:而series则是一个measurement中保存策略和tag集 ...

  7. 【转】Lombok介绍、使用方法和总结

    链接:http://www.yuanrengu.com/index.php/20180324.html 1 Lombok背景介绍 官方介绍如下: Project Lombok makes java a ...

  8. 第16届(2019)全国大学生信息安全与对抗技术竞赛全国线下总决赛 Writeup

    笔者<Qftm>原文发布<BitHack>:https://bithack.io/forum/469/answer/333 0x00 Begin 关于 ISCC 2019 北理 ...

  9. 从GitLab上创建分支本地拉取项目和提交项目详解

    很多公司前端项目都是部署在GitLab上的,今天我要分享的就是如何从GitLab上创建新的分支并在本地拉取和提交项目 一.在GitLab上面创建自己新的分支 首先你得注册一个账号,登陆之后进入项目Pr ...

  10. PHP设计模式 - 门面模式

    门面模式 (Facade)又称外观模式,用于为子系统中的一组接口提供一个一致的界面.门面模式定义了一个高层接口,这个接口使得子系统更加容易使用:引入门面角色之后,用户只需要直接与门面角色交互,用户与子 ...