UNPKG

vd-charts

Version:
1,034 lines (1,029 loc) 20.7 kB
const baseData = { dimensions: { name: 'Basic Sunburst', data: ['技术类型'] }, measures: [{ name: 'Basic Sunburst', data: [{ name: '前端', children: [{ name: 'javascript', value: 15, children: [{ name: 'react', value: 6 }, { name: 'vue', value: 5 }, { name: 'angular', value: 4 }] }, { name: 'css', value: 10, children: [{ name: 'less', value: 5 }, { name: 'sass', value: 1 }, { name: 'styls', value: 4 }] }] }, { name: '后端', children: [{ name: 'java', children: [{ name: 'spring mvc', value: 10 }, { name: 'spring boot', value: 20 }] }] }] }] } const monochromeData = { dimensions: { name: 'Monochrome Sunburst', data: ['技术类型'] }, measures: [{ name: 'Monochrome Sunburst', data: [{ children: [{ value: 5, children: [{ value: 1, itemStyle: {color: '#F54F4A'} }, { value: 2, children: [{ value: 1, itemStyle: {color: '#FF8C75'} }] }, { children: [{ value: 1 }] }], itemStyle: {color: '#F54F4A'} }, { value: 10, children: [{ value: 6, children: [{ value: 1, itemStyle: {color: '#F54F4A'} }, { value: 1 }, { value: 1, itemStyle: {color: '#FF8C75'} }, { value: 1 }], itemStyle: {color: '#FFB499'} }, { value: 2, children: [{ value: 1 }], itemStyle: {color: '#FFB499'} }, { children: [{ value: 1, itemStyle: {color: '#FF8C75'} }] }], itemStyle: {color: '#F54F4A'} }], itemStyle: {color: '#F54F4A'} }, { value: 9, children: [{ value: 4, children: [{ value: 2, itemStyle: {color: '#FF8C75'} }, { children: [{ value: 1, itemStyle: {color: '#F54F4A'} }] }], itemStyle: {color: '#F54F4A'} }, { children: [{ value: 3, children: [{ value: 1 }, { value: 1, itemStyle: {color: '#FF8C75'} }] }], itemStyle: {color: '#FFB499'} }], itemStyle: {color: '#FF8C75'} }, { value: 7, children: [{ children: [{ value: 1, itemStyle: {color: '#FFB499'} }, { value: 3, children: [{ value: 1, itemStyle: {color: '#FF8C75'} }, { value: 1 }], itemStyle: {color: '#FF8C75'} }, { value: 2, children: [{ value: 1 }, { value: 1, itemStyle: {color: '#F54F4A'} }], itemStyle: {color: '#F54F4A'} }], itemStyle: {color: '#FFB499'} }], itemStyle: {color: '#F54F4A'} }, { children: [{ value: 6, children: [{ value: 1, itemStyle: {color: '#FF8C75'} }, { value: 2, children: [{ value: 2, itemStyle: {color: '#FF8C75'} }], itemStyle: {color: '#F54F4A'} }, { value: 1, itemStyle: {color: '#FFB499'} }], itemStyle: {color: '#FFB499'} }, { value: 3, children: [{ value: 1 }, { children: [{ value: 1, itemStyle: {color: '#FF8C75'} }] }, { value: 1 }], itemStyle: {color: '#FFB499'} }], itemStyle: {color: '#F54F4A'} }] }] } const rotateData = { dimensions: { name: 'Sunburst Label Rotate', data: ['技术类型'] }, measures: [{ name: 'Sunburst Label Rotate', data: [{ value: 8, children: [{ value: 4, children: [{ value: 2 }, { value: 1 }, { value: 1 }, { value: 0.5 }] }, { value: 2 }] }, { value: 4, children: [{ children: [{ value: 2 }] }] }, { value: 4, children: [{ children: [{ value: 2 }] }] }, { value: 3, children: [{ children: [{ value: 1 }] }] }] }] } const drinkData = { dimensions: { name: 'Sunburst Label Rotate', data: ['技术类型'] }, measures: [{ name: 'Sunburst Label Rotate', data: [{ name: 'Flora', itemStyle: { color: '#da0d68' }, children: [{ name: 'Black Tea', value: 1, itemStyle: { color: '#975e6d' } }, { name: 'Floral', itemStyle: { color: '#e0719c' }, children: [{ name: 'Chamomile', value: 1, itemStyle: { color: '#f99e1c' } }, { name: 'Rose', value: 1, itemStyle: { color: '#ef5a78' } }, { name: 'Jasmine', value: 1, itemStyle: { color: '#f7f1bd' } }] }] }, { name: 'Fruity', itemStyle: { color: '#da1d23' }, children: [{ name: 'Berry', itemStyle: { color: '#dd4c51' }, children: [{ name: 'Blackberry', value: 1, itemStyle: { color: '#3e0317' } }, { name: 'Raspberry', value: 1, itemStyle: { color: '#e62969' } }, { name: 'Blueberry', value: 1, itemStyle: { color: '#6569b0' } }, { name: 'Strawberry', value: 1, itemStyle: { color: '#ef2d36' } }] }, { name: 'Dried Fruit', itemStyle: { color: '#c94a44' }, children: [{ name: 'Raisin', value: 1, itemStyle: { color: '#b53b54' } }, { name: 'Prune', value: 1, itemStyle: { color: '#a5446f' } }] }, { name: 'Other Fruit', itemStyle: { color: '#dd4c51' }, children: [{ name: 'Coconut', value: 1, itemStyle: { color: '#f2684b' } }, { name: 'Cherry', value: 1, itemStyle: { color: '#e73451' } }, { name: 'Pomegranate', value: 1, itemStyle: { color: '#e65656' } }, { name: 'Pineapple', value: 1, itemStyle: { color: '#f89a1c' } }, { name: 'Grape', value: 1, itemStyle: { color: '#aeb92c' } }, { name: 'Apple', value: 1, itemStyle: { color: '#4eb849' } }, { name: 'Peach', value: 1, itemStyle: { color: '#f68a5c' } }, { name: 'Pear', value: 1, itemStyle: { color: '#baa635' } }] }, { name: 'Citrus Fruit', itemStyle: { color: '#f7a128' }, children: [{ name: 'Grapefruit', value: 1, itemStyle: { color: '#f26355' } }, { name: 'Orange', value: 1, itemStyle: { color: '#e2631e' } }, { name: 'Lemon', value: 1, itemStyle: { color: '#fde404' } }, { name: 'Lime', value: 1, itemStyle: { color: '#7eb138' } }] }] }, { name: 'Sour/\nFermented', itemStyle: { color: '#ebb40f' }, children: [{ name: 'Sour', itemStyle: { color: '#e1c315' }, children: [{ name: 'Sour Aromatics', value: 1, itemStyle: { color: '#9ea718' } }, { name: 'Acetic Acid', value: 1, itemStyle: { color: '#94a76f' } }, { name: 'Butyric Acid', value: 1, itemStyle: { color: '#d0b24f' } }, { name: 'Isovaleric Acid', value: 1, itemStyle: { color: '#8eb646' } }, { name: 'Citric Acid', value: 1, itemStyle: { color: '#faef07' } }, { name: 'Malic Acid', value: 1, itemStyle: { color: '#c1ba07' } }] }, { name: 'Alcohol/\nFremented', itemStyle: { color: '#b09733' }, children: [{ name: 'Winey', value: 1, itemStyle: { color: '#8f1c53' } }, { name: 'Whiskey', value: 1, itemStyle: { color: '#b34039' } }, { name: 'Fremented', value: 1, itemStyle: { color: '#ba9232' } }, { name: 'Overripe', value: 1, itemStyle: { color: '#8b6439' } }] }] }, { name: 'Green/\nVegetative', itemStyle: { color: '#187a2f' }, children: [{ name: 'Olive Oil', value: 1, itemStyle: { color: '#a2b029' } }, { name: 'Raw', value: 1, itemStyle: { color: '#718933' } }, { name: 'Green/\nVegetative', itemStyle: { color: '#3aa255' }, children: [{ name: 'Under-ripe', value: 1, itemStyle: { color: '#a2bb2b' } }, { name: 'Peapod', value: 1, itemStyle: { color: '#62aa3c' } }, { name: 'Fresh', value: 1, itemStyle: { color: '#03a653' } }, { name: 'Dark Green', value: 1, itemStyle: { color: '#038549' } }, { name: 'Vegetative', value: 1, itemStyle: { color: '#28b44b' } }, { name: 'Hay-like', value: 1, itemStyle: { color: '#a3a830' } }, { name: 'Herb-like', value: 1, itemStyle: { color: '#7ac141' } }] }, { name: 'Beany', value: 1, itemStyle: { color: '#5e9a80' } }] }, { name: 'Other', itemStyle: { color: '#0aa3b5' }, children: [{ name: 'Papery/Musty', itemStyle: { color: '#9db2b7' }, children: [{ name: 'Stale', value: 1, itemStyle: { color: '#8b8c90' } }, { name: 'Cardboard', value: 1, itemStyle: { color: '#beb276' } }, { name: 'Papery', value: 1, itemStyle: { color: '#fefef4' } }, { name: 'Woody', value: 1, itemStyle: { color: '#744e03' } }, { name: 'Moldy/Damp', value: 1, itemStyle: { color: '#a3a36f' } }, { name: 'Musty/Dusty', value: 1, itemStyle: { color: '#c9b583' } }, { name: 'Musty/Earthy', value: 1, itemStyle: { color: '#978847' } }, { name: 'Animalic', value: 1, itemStyle: { color: '#9d977f' } }, { name: 'Meaty Brothy', value: 1, itemStyle: { color: '#cc7b6a' } }, { name: 'Phenolic', value: 1, itemStyle: { color: '#db646a' } }] }, { name: 'Chemical', itemStyle: { color: '#76c0cb' }, children: [{ name: 'Bitter', value: 1, itemStyle: { color: '#80a89d' } }, { name: 'Salty', value: 1, itemStyle: { color: '#def2fd' } }, { name: 'Medicinal', value: 1, itemStyle: { color: '#7a9bae' } }, { name: 'Petroleum', value: 1, itemStyle: { color: '#039fb8' } }, { name: 'Skunky', value: 1, itemStyle: { color: '#5e777b' } }, { name: 'Rubber', value: 1, itemStyle: { color: '#120c0c' } }] }] }, { name: 'Roasted', itemStyle: { color: '#c94930' }, children: [{ name: 'Pipe Tobacco', value: 1, itemStyle: { color: '#caa465' } }, { name: 'Tobacco', value: 1, itemStyle: { color: '#dfbd7e' } }, { name: 'Burnt', itemStyle: { color: '#be8663' }, children: [{ name: 'Acrid', value: 1, itemStyle: { color: '#b9a449' } }, { name: 'Ashy', value: 1, itemStyle: { color: '#899893' } }, { name: 'Smoky', value: 1, itemStyle: { color: '#a1743b' } }, { name: 'Brown, Roast', value: 1, itemStyle: { color: '#894810' } }] }, { name: 'Cereal', itemStyle: { color: '#ddaf61' }, children: [{ name: 'Grain', value: 1, itemStyle: { color: '#b7906f' } }, { name: 'Malt', value: 1, itemStyle: { color: '#eb9d5f' } }] }] }, { name: 'Spices', itemStyle: { color: '#ad213e' }, children: [{ name: 'Pungent', value: 1, itemStyle: { color: '#794752' } }, { name: 'Pepper', value: 1, itemStyle: { color: '#cc3d41' } }, { name: 'Brown Spice', itemStyle: { color: '#b14d57' }, children: [{ name: 'Anise', value: 1, itemStyle: { color: '#c78936' } }, { name: 'Nutmeg', value: 1, itemStyle: { color: '#8c292c' } }, { name: 'Cinnamon', value: 1, itemStyle: { color: '#e5762e' } }, { name: 'Clove', value: 1, itemStyle: { color: '#a16c5a' } }] }] }, { name: 'Nutty/\nCocoa', itemStyle: { color: '#a87b64' }, children: [{ name: 'Nutty', itemStyle: { color: '#c78869' }, children: [{ name: 'Peanuts', value: 1, itemStyle: { color: '#d4ad12' } }, { name: 'Hazelnut', value: 1, itemStyle: { color: '#9d5433' } }, { name: 'Almond', value: 1, itemStyle: { color: '#c89f83' } }] }, { name: 'Cocoa', itemStyle: { color: '#bb764c' }, children: [{ name: 'Chocolate', value: 1, itemStyle: { color: '#692a19' } }, { name: 'Dark Chocolate', value: 1, itemStyle: { color: '#470604' } }] }] }, { name: 'Sweet', itemStyle: { color: '#e65832' }, children: [{ name: 'Brown Sugar', itemStyle: { color: '#d45a59' }, children: [{ name: 'Molasses', value: 1, itemStyle: { color: '#310d0f' } }, { name: 'Maple Syrup', value: 1, itemStyle: { color: '#ae341f' } }, { name: 'Caramelized', value: 1, itemStyle: { color: '#d78823' } }, { name: 'Honey', value: 1, itemStyle: { color: '#da5c1f' } }] }, { name: 'Vanilla', value: 1, itemStyle: { color: '#f89a80' } }, { name: 'Vanillin', value: 1, itemStyle: { color: '#f37674' } }, { name: 'Overall Sweet', value: 1, itemStyle: { color: '#e75b68' } }, { name: 'Sweet Aromatics', value: 1, itemStyle: { color: '#d0545f' } }] }] }] } export default { name: '旭日图', type: 'sunburst', chartData: [ { title: 'Basic Sunburst', data: baseData, settings: { radius: [0, '80%'], label: { rotate: 0 }, tooltip: { show: true } } }, { title: 'Monochrome Sunburst', data: monochromeData, settings: { radius: ['15%', '80%'], sort: null, highlightPolicy: 'ancestor', itemStyle: { color: '#ddd', borderWidth: 2 } } }, { title: 'Sunburst Label Rotate', data: rotateData, settings: { silent: true, radius: ['15%', '80%'], sort: null, highlightPolicy: 'ancestor', label: { color: '#fff', textBorderColor: '#666', textBorderWidth: 2, borderColor: '#999', borderWidth: 1, formatter: function (param) { let depth = param.treePathInfo.length if (depth === 2) { return 'radial' } else if (depth === 3) { return 'tangential' } else if (depth === 4) { return '0' } } }, levels: [{}, { itemStyle: { color: 'red' }, label: { rotate: 'radial' } }, { itemStyle: { color: 'orange' }, label: { rotate: 'tangential' } }, { itemStyle: { color: 'yellow' }, label: { rotate: 0 } }] } }, { title: 'Drink Flavors', data: drinkData, settings: { highlightPolicy: 'ancestor', radius: [0, '100%'], sort: null, levels: [{}, { r0: '15%', r: '35%', itemStyle: { borderWidth: 2 }, label: { rotate: 'tangential' } }, { r0: '35%', r: '70%', label: { align: 'right' } }, { r0: '70%', r: '72%', label: { position: 'outside', padding: 3, silent: false }, itemStyle: { borderWidth: 3 } }] } } ] }