blob: 508ac34740b3d9699724490b39a597769e8622aa [file] [log] [blame]
/*
title: Calendar Charts
category: 'calendar, scatter'
titleCN: 日历图
shotWidth: 1000
difficulty: 11
*/
function getVirtulData(year: string) {
year = year || '2017';
let date = +echarts.number.parseDate(year + '-01-01');
let end = +echarts.number.parseDate(+year + 1 + '-01-01');
let dayTime = 3600 * 24 * 1000;
let data = [];
for (let time = date; time < end; time += dayTime) {
data.push([
echarts.format.formatTime('yyyy-MM-dd', time),
Math.floor(Math.random() * 1000)
]);
}
console.log(data[data.length - 1]);
return data;
}
const graphData = [
['2017-02-01', 260],
['2017-02-04', 200],
['2017-02-09', 279],
['2017-02-13', 847],
['2017-02-18', 241],
['2017-02-23', 411],
['2017-02-27', 985]
];
const links = graphData.map(function (item, idx) {
return {
source: idx,
target: idx + 1
};
});
links.pop();
option = {
tooltip: {
position: 'top'
},
visualMap: [
{
min: 0,
max: 1000,
calculable: true,
seriesIndex: [2, 3, 4],
orient: 'horizontal',
left: '55%',
bottom: 20
},
{
min: 0,
max: 1000,
inRange: {
color: ['grey'],
opacity: [0, 0.3]
},
controller: {
inRange: {
opacity: [0.3, 0.6]
},
outOfRange: {
color: '#ccc'
}
},
seriesIndex: [1],
orient: 'horizontal',
left: '10%',
bottom: 20
}
],
calendar: [
{
orient: 'vertical',
yearLabel: {
margin: 40
},
monthLabel: {
nameMap: 'cn',
margin: 20
},
dayLabel: {
firstDay: 1,
nameMap: 'cn'
},
cellSize: 40,
range: '2017-02'
},
{
orient: 'vertical',
yearLabel: {
margin: 40
},
monthLabel: {
margin: 20
},
cellSize: 40,
left: 460,
range: '2017-01'
},
{
orient: 'vertical',
yearLabel: {
margin: 40
},
monthLabel: {
margin: 20
},
cellSize: 40,
top: 350,
range: '2017-03'
},
{
orient: 'vertical',
yearLabel: {
margin: 40
},
dayLabel: {
firstDay: 1,
nameMap: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
},
monthLabel: {
nameMap: 'cn',
margin: 20
},
cellSize: 40,
top: 350,
left: 460,
range: '2017-04'
}
],
series: [
{
type: 'graph',
edgeSymbol: ['none', 'arrow'],
coordinateSystem: 'calendar',
links: links,
symbolSize: 10,
calendarIndex: 0,
data: graphData
},
{
type: 'heatmap',
coordinateSystem: 'calendar',
data: getVirtulData('2017')
},
{
type: 'effectScatter',
coordinateSystem: 'calendar',
calendarIndex: 1,
symbolSize: function (val) {
return val[1] / 40;
},
data: getVirtulData('2017')
},
{
type: 'scatter',
coordinateSystem: 'calendar',
calendarIndex: 2,
symbolSize: function (val) {
return val[1] / 60;
},
data: getVirtulData('2017')
},
{
type: 'heatmap',
coordinateSystem: 'calendar',
calendarIndex: 3,
data: getVirtulData('2017')
}
]
};
export {};