<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="lib/echarts.js"></script>
</head>
<body>
<div id="main" style="height:500px;width: 800px"></div>
<script>
var sex;
if(Math.floor(Math.random()*2+1)==1){
sex='男';
}else{
sex='女';
}
// 基于准备好的dom,初始化echarts图表
Date.prototype.format = function (format) {
var args = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3), //quarter
"S": this.getMilliseconds()
};
if (/(y+)/.test(format))
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var i in args) {
var n = args[i];
if (new RegExp("(" + i + ")").test(format))
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? n : ("00" + n).substr(("" + n).length));
}
return format;
};
function timestampToTime(timestamp) {
var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
Y = date.getFullYear() + '-';
M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
D = date.getDate() + ' ';
return Y+M+D;
}
var date=new Date();
var dates=[];
function randomDate(date,num) {
// var num=Math.floor(Math.random()*10+1);
for(let i=0;i<num;i++){
var d=timestampToTime((date.getTime()-2592000000*i)/1000);
dates.push(d);
}
return dates;
}
var times=randomDate(date,Math.floor(Math.random()*11+1));//有多少个日期
console.log(times);
function perColor(num) {
var colorArr=['#e03134','#eea345','#ffd104', '#43a546'];
if(num>=0 && num<25){
var pColor=colorArr[3];
}else if(num>=25 && num<50){
var pColor=colorArr[2];
}
else if(num>=50 && num<75){
var pColor=colorArr[1];
}else{
var pColor=colorArr[0];
}
return pColor;
}
function menPercent(sum) {
var score=[];
var percent=[3,3,4,4,5,5,6,7,8,10,11,13,15,17,20,22,26,29,33,37,42,47,52,57,63,68,74,79,84,88];
for(let i=1;i<=30;i++){
score.push(i);
}
for(let i=0;i<score.length;i++){
if(sum==score[i]){
per=percent[i];
}
}
if(sum>30){
per=88;
}
return per;
}
function womenPercent(sum) {
var score=[];
var percent=[1,1,2,2,2,3,4,4,5,6,8,9,11,13,16,19,23,27,32,37,43,50,57,64,71,78,84];
for(let i=1;i<=27;i++){
score.push(i);
}
for(let i=0;i<score.length;i++){
if(sum==score[i]){
per=percent[i]
}
}
if(sum>27){
per=84;
}
return per;
}
var colNameArr=['COL_8769','COL_8770','COL_8771','COL_8772','COL_8768','COL_8773','COL_8774','COL_8775','COL_8776','COL_8777','COL_8778','COL_8779','COL_8780','COL_8781','COL_8782','COL_8783'];
var DanArr=['0','1','2','3','4','5','6','7','8','9','10'];
var DanArr1=['0','2'];
var DanArr2=['0','3'];
var DanArr3=['0','4'];
var DanArr4=['0','5'];
var DanArr5=['0','6'];
var age=Math.floor (Math.random()*(DanArr.length));
function faker() {
function fake() {
var datee=Math.floor (Math.random()*2);
return datee;
}
var rtList=[];
for(var i=0;i<times.length;i++) {
if(sex=='男'){
rtList.push({
COL_8608:times[i],
COL_8769:DanArr[age],
COL_8770:DanArr[Math.floor (Math.random()*(DanArr.length))],
COL_8771:DanArr[Math.floor (Math.random()*(DanArr.length))],
COL_8772:DanArr1[fake()],
COL_8768:DanArr2[fake()],
COL_8773:DanArr3[fake()],
COL_8774:DanArr3[fake()],
COL_8775:DanArr4[fake()],
// COL_8776:DanArr[fakelis()],
// COL_8777:DanArr[fakelis()],
// COL_8778:DanArr[fakelis()],
// COL_8779:DanArr[fakelis()],
// COL_8780:DanArr[fakelis()],
// COL_8781:DanArr[fakelis()],
// COL_8782:DanArr[fakelis()],
// COL_8783:DanArr[fakelis()]
});
}else{
rtList.push({
COL_8608:times[i],
COL_8769:DanArr[age],
COL_8770:DanArr[Math.floor (Math.random()*(DanArr.length))],
COL_8771:DanArr[Math.floor (Math.random()*(DanArr.length))],
COL_8772:DanArr2[fake()],
COL_8768:DanArr2[fake()],
COL_8773:DanArr1[fake()],
COL_8774:DanArr5[fake()],
COL_8775:DanArr3[fake()],
// COL_8776:DanArr[fakelis()],
// COL_8777:DanArr[fakelis()],
// COL_8778:DanArr[fakelis()],
// COL_8779:DanArr[fakelis()],
// COL_8780:DanArr[fakelis()],
// COL_8781:DanArr[fakelis()],
// COL_8782:DanArr[fakelis()],
// COL_8783:DanArr[fakelis()]
});
}
}
return rtList;
}
// var dateArrlength=Math.floor (Math.random()*(times.length));//随机条数
a=faker();
// console.log(a[1]);
function sum1(a) {
var k=0;
for(var index in a){
if(index!="COL_8608"){
k=k+parseInt(a[index]);
}
}
return k
}
console.log('sum1(a[1])=',sum1(a[1]));
if(sex=="男"){
var k=[];
var arr=0;
for(let i=0;i<times.length;i++){
k.push(menPercent(sum1(a[i])));
}
}else{
var k=[];
for(let i=0;i<times.length;i++){
k.push(womenPercent(sum1(a[i])));
}
}
console.log(k)
var myChart = echarts.init(document.getElementById("main"));
var option = {
title: {
text: '10年卒中风险',
},
tooltip: {
trigger: 'axis',
axisPointer: {//鼠标滑过的线条样式
type: 'line',
lineStyle: {
color: 'red',//颜色
width: 1,//宽度
type: 'solid'//实线
},
},
formatter: function (value) {//鼠标滑过时显示内容的格式化
var res = "<div>日期:" + value[0].axisValue + "</div>";
res += "<div>10年卒中风险:<span style='color:" + perColor(value[0].data) + ";'>" + value[0].data + "%</span></div>";
return res;
}
},
//右上角工具条
toolbox: {
show: true,
feature: {
mark: {show: true},//目前还不知道有啥用
dataView: {show: true, readOnly: true},//数据视图
magicType: {show: true, type: ['line', 'bar']},//折线与柱状的切换
restore: {show: true},//重置
saveAsImage: {show: true}//保存为图片
}
},
calculable: true,
xAxis: [{
type: 'category',
name: '日期',
boundaryGap: false,//若为true,则x轴的值不在刻度上.
data: times,
}],
yAxis: [{
type: 'value',
name: "百分比",
axisLabel: {//y轴的内容格式化,很有用的属性
formatter: '{value}%'
}
}],
legend: {
data: ['10年卒中风险']//要与series中的name一致
},
series: [{
itemStyle: {
normal: {
lineStyle: {
color: '#fff'//控制折线颜色
}
}
},
name: '10年卒中风险',
type: 'line',
data: k,
markPoint: {
data: [/*显示最值*/
{type: 'max'},
{type: 'min'},
],
},
markLine: {
data: [
{type: 'average'}//显示平均值
]
},
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
offset: 0,
color: '#e03134'//['#e03134','#eea345','#ffd104', '#43a546']
}, {
offset: 0.5,
color: '#eea345'
},{
offset: 0.75,
color: '#ffd104'
},
{
offset: 1,
color: '#43a546'
}]),
}
}
}]
};
// 为echarts对象加载数据
myChart.setOption(option);
</script>
</body>
</html>