数据来源:中国荒政书集成(全12册)第12册-01天津古籍出版社2010年3月
配置项如下
let dashedPic = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM8AAAAOBAMAAAB6G1V9AAAAD1BMVEX////Kysrk5OTj4+TJycoJ0iFPAAAAG0lEQVQ4y2MYBaNgGAMTQQVFOiABhlEwCugOAMqzCykGOeENAAAAAElFTkSuQmCC';
let color = ['#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4'];
let chartData = [{
name: "农 界",
value: 1865,
},
{
name: "苦 力",
value: 1066,
}, {
name: "商 界",
value: 676,
}, {
name: "未 详",
value: 664,
}, {
name: "工 界",
value: 608,
}, {
name: "无 业",
value: 353,
}, {
name: "防疫人员",
value: 73,
},
{
name: "绅 学",
value: 62,
},
{
name: "军 人",
value: 33,
}
];
let arrName = [];
let arrValue = [];
let sum = 0;
let pieSeries = [],
lineYAxis = [];
// 数据处理
chartData.forEach((v, i) => {
arrName.push(v.name);
arrValue.push(v.value);
sum = sum + v.value;
})
// 图表option整理
chartData.forEach((v, i) => {
pieSeries.push({
name: '',
type: 'pie',
clockWise: false,
hoverAnimation: true,
radius: [80 - i * 7 + '%', 75 - i * 7 + '%'],
center: ["23%", "45%"],
label: {
show: false
},
data: [{
value: v.value,
name: v.name
}, {
value: sum - v.value,
name: '',
itemStyle: {
color: "rgba(0,0,0,0)"
},
tooltip: {
show: false
}
}]
});
pieSeries.push({
name: '',
type: 'pie',
silent: true,
z: 1,
clockWise: false, //顺时加载
hoverAnimation: false, //鼠标移入变大
radius: [79 - i * 7 + '%', 76 - i * 7 + '%'],
center: ["23%", "45%"],
label: {
show: false
},
data: [{
value: 2.5,
itemStyle: {
color: 'rgba(0,0,0,0.1)'
},
tooltip: {
show: false
}
}, {
value: 2.5,
name: '',
itemStyle: {
color: "rgba(0,0,0,0)"
},
tooltip: {
show: false
},
}]
});
v.percent = (v.value / sum * 100).toFixed(1) + "%";
lineYAxis.push({
value: i,
textStyle: {
rich: {
circle: {
color: color[i],
padding: [0, 5]
}
}
}
});
})
option = {
backgroundColor: '#363636',
title: [{
text: '奉天各属疫毙人数职业比较',
subtext: '数据来源:《东三省疫事报告书》奉天防疫总局,1911年',
textAlign: "center",
left: "32%",
bottom: '3%',
textStyle: {
color: '#fff',
fontSize: 25,
},
subtextStyle: {
fontSize: 15,
}
}, {
text: '备注',
subtext: '一、奉天全省统辖 51 属,右表仅列有疫之 28 属,余则从略。\n\n二、右表绅学一栏,统士绅学生各项上流社会而言之。\n\n三、右表既就职业上区分疫死之多寡,故妇女疫毙者未为列入。\n\n 统计男子死者 5400 人,妇女死者 1558 人,共 6958 人。\n\n 就此表观之,农及苦力占最多数,其次工商无业者占 1/20 ,\n\n 防疫人员居 1/100 ,绅学军人占最少数。\n\n 若以男女比较,则女占 1/4 而弱,男占 3/4 而强。',
//textAlign: "center",
left: "27%",
bottom: '18%',
backgroundColor: 'rgba(0,0,0,0.1)',
borderRadius: 10,
padding: 18,
textStyle: {
color: '#fff',
fontSize: 20,
},
subtextStyle: {
fontSize: 15,
}
}],
tooltip: {
show: true,
trigger: "item",
formatter: "{b}<br>{c}人 ({d}%)",
fontSize: 18
},
color: color,
grid: {
top: '4.5%',
bottom: '64%',
left: "27%",
containLabel: true
},
yAxis: [{
type: 'category',
inverse: true,
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
formatter: function(params) {
let item = chartData[params];
console.log(item)
return '{line|}{circle|●}{name|' + ' ' + item.name + ' ' + '}{bd||}{percent|' + ' ' + item.percent + ' ' + '}{value|' + item.value + '}'
},
interval: 0,
inside: true,
textStyle: {
color: "#333",
fontSize: 14,
rich: {
line: {
width: 200,
height: 3,
backgroundColor: {
image: dashedPic
}
},
name: {
color: 'white',
fontSize: 16,
},
bd: {
color: 'white',
padding: [0, 5],
fontSize: 15,
},
percent: {
color: 'white',
fontSize: 16,
},
value: {
color: 'white',
fontSize: 16,
fontWeight: 500,
padding: [0, 0, 0, 20]
},
}
},
show: true
},
data: lineYAxis
}],
xAxis: [{
show: false
}],
series: pieSeries
};