<template>
<div class="app-container">
<!-- 初始图 -->
<div id="main" style="width:600px;height:600px;margin:0 auto;background-color:#fff;" />
</div>
</template>
<script>
import { EleResize } from '@/utils/esresize'// 图表自适应
export default {
data() {
return {
dialogVisible: false
}
},
mounted() {
// 初始画图
this.initChart(document.getElementById('main'))
},
methods: {
initChart(domName) {
var myChart = this.$echarts.init(domName)
// 图表自适应
const listener = function() {
myChart.resize()
}
EleResize.on(domName, listener)
var option = {
title: {
text: 'ECharts实例'
},
toolbox: {
feature: {
dataZoom: { yAxisIndex: 'none' }, // 数据区域缩放
restore: { show: true }, // 重置
saveAsImage: { show: true }, // 导出图片
myFull: { // 全屏
show: true,
title: '全屏',
icon: 'path://M432.45,595.444c0,2.177-4.661,6.82-11.305,6.82c-6.475,0-11.306-4.567-11.306-6.82s4.852-6.812,11.306-6.812C427.841,588.632,432.452,593.191,432.45,595.444L432.45,595.444z M421.155,589.876c-3.009,0-5.448,2.495-5.448,5.572s2.439,5.572,5.448,5.572c3.01,0,5.449-2.495,5.449-5.572C426.604,592.371,424.165,589.876,421.155,589.876L421.155,589.876z M421.146,591.891c-1.916,0-3.47,1.589-3.47,3.549c0,1.959,1.554,3.548,3.47,3.548s3.469-1.589,3.469-3.548C424.614,593.479,423.062,591.891,421.146,591.891L421.146,591.891zM421.146,591.891',
onclick: (e) => {
// 全屏查看
if (domName.requestFullScreen) { // HTML W3C 提议
domName.requestFullScreen()
} else if (domName.msRequestFullscreen) { // IE11
domName.msRequestFullScreen()
} else if (domName.webkitRequestFullScreen) { // Webkit
domName.webkitRequestFullScreen()
} else if (domName.mozRequestFullScreen) { // Firefox
domName.mozRequestFullScreen()
}
// 退出全屏
if (domName.requestFullScreen) {
document.exitFullscreen()
} else if (domName.msRequestFullScreen) {
document.msExitFullscreen()
} else if (domName.webkitRequestFullScreen) {
document.webkitCancelFullScreen()
} else if (domName.mozRequestFullScreen) {
document.mozCancelFullScreen()
}
}
}
}
},
legend: {
data: ['销量1111111111111111111111', '销量22222222222222222222'],
orient: 'horizontal',
'formatter': function(params) {
if (params.length > 10) {
var p1 = params.slice(0, 10)
var p2 = params.slice(10)
return p1 + '\n' + p2
} else {
return params
}
}
},
xAxis: {
data: ['衬衫111111111', '羊毛衫1111111111111', '雪纺衫111111111', '裤子111111111', '高跟鞋11111111', '袜子1111111111'],
axisLabel: { // 坐标轴标签
interval: 0,
// rotate: 45, // 倾斜度 -90 至 90 默认为0
margin: 12,
textStyle: {
fontWeight: 'bolder',
color: '#000000'
},
// 坐标轴刻度标签换行处理
formatter: function(params) {
var newParamsName = '' // 最终拼接成的字符串
var paramsNameNumber = params.length // 实际标签的个数
var provideNumber = 8 // 每行能显示的字的个数
var rowNumber = Math.ceil(paramsNameNumber / provideNumber) // 换行的话,需要显示几行,向上取整
/**
* 判断标签的个数是否大于规定的个数, 如果大于,则进行换行处理 如果不大于,即等于或小于,就返回原标签
*/
// 条件等同于rowNumber>1
if (paramsNameNumber > provideNumber) {
/** 循环每一行,p表示行 */
for (var p = 0; p < rowNumber; p++) {
var tempStr = '' // 表示每一次截取的字符串
var start = p * provideNumber // 开始截取的位置
var end = start + provideNumber // 结束截取的位置
// 此处特殊处理最后一行的索引值
if (p === rowNumber - 1) {
// 最后一次不换行
tempStr = params.substring(start, paramsNameNumber)
} else {
// 每一次拼接字符串并换行
tempStr = params.substring(start, end) + '\n'
}
newParamsName += tempStr // 最终拼成的字符串
}
} else {
// 将旧标签的值赋给新标签
newParamsName = params
}
// 将最终的字符串返回
return newParamsName
}
}
},
yAxis: [
{
type: 'value',
name: '宇\n宙\n无\n敌\n第\n一\n大\n帅\n比\n就\n是\n我\n哈\n哈\n哈\n哈\n额\n!!!',
nameLocation: 'middle',
nameRotate: 0,
nameTextStyle: {
padding: [0, 50, 0, 0],
align: 'center'
},
position: 'left',
axisLine: {
show: true,
lineStyle: {
color: 'blue'
}
},
axisLabel: {
formatter: '{value}'
}
},
{
type: 'value',
name: '你\n们\n就\n承\n认\n我\n是\n宇\n宙\n无\n敌\n第\n一\n大\n帅\n比\n吧\n!!!',
nameLocation: 'middle',
nameRotate: 0,
nameTextStyle: {
padding: [0, 0, 0, 60],
align: 'center'
},
position: 'right',
axisLine: {
show: true,
lineStyle: {
color: '#91cc75'
}
},
axisLabel: {
formatter: function(value) { // 科学计数法显示标签
var res = value.toString()
var numN1 = 0
var numN2 = 1
var num1 = 0
var num2 = 0
var t1 = 1
for (var k = 0; k < res.length; k++) {
if (res[k] === '.') { t1 = 0 }
if (t1) { num1++ } else { num2++ }
}
if (Math.abs(value) < 1 && res.length > 4) {
for (var i = 2; i < res.length; i++) {
if (res[i] === '0') {
numN2++
} else if (res[i] === '.') {
continue
} else {
break
}
}
var v = parseFloat(value)
v = v * Math.pow(10, numN2)
return v.toString() + 'e-' + numN2
} else if (num1 > 4) {
if (res[0] === '-') {
numN1 = num1 - 2
} else {
numN1 = num1 - 1
}
v = parseFloat(value)
v = v / Math.pow(10, numN1)
if (num2 > 4) { v = v.toFixed(4) }
return v.toString() + 'e' + numN1
} else {
return parseFloat(value)
}
}
}
}
],
series: [
{
name: '销量1111111111111111111111',
type: 'bar',
yAxisIndex: 0, // 指定第一个y轴
data: [5, 20, 36, 10, 10, 20]
},
{
name: '销量22222222222222222222',
type: 'bar',
yAxisIndex: 1, // 指定第二个y轴
data: [15000, 25000, 40000, 50000, 150000, 300000]
}
]
}
option && myChart.setOption(option)
}
}
}
</script>
09-21
116
04-25
433
10-18
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交