diff --git a/examples/scatter/basic/demo/meta.json b/examples/scatter/basic/demo/meta.json index 680c8bf65c..3ccca8187b 100644 --- a/examples/scatter/basic/demo/meta.json +++ b/examples/scatter/basic/demo/meta.json @@ -51,6 +51,14 @@ "en": "Scatter plot custom shape" }, "screenshot": "https://gw.alipayobjects.com/mdn/rms_d314dd/afts/img/A*zfwOTZE7KwcAAAAAAAAAAAAAARQnAQ" + }, + { + "filename": "quadrant-tooltip.ts", + "title": { + "zh": "散点图-自定义tooltip", + "en": "Scatter custom tooltip" + }, + "screenshot": "https://gw.alipayobjects.com/mdn/rms_d314dd/afts/img/A*CvOyT6MoUAQAAAAAAAAAAAAAARQnAQ" } ] } diff --git a/examples/scatter/basic/demo/quadrant-tooltip.ts b/examples/scatter/basic/demo/quadrant-tooltip.ts new file mode 100644 index 0000000000..405f438290 --- /dev/null +++ b/examples/scatter/basic/demo/quadrant-tooltip.ts @@ -0,0 +1,327 @@ +import { Scatter } from '@antv/g2plot'; +const data = [ + { + city: '上海', + 搜索UV: 1.5, + 端DAU: 6, + 搜索DAU渗透率: 3, + }, + { + city: '台北', + 搜索UV: 2, + 端DAU: 5, + 搜索DAU渗透率: 13, + }, + { + city: '北京', + 搜索UV: 7, + 端DAU: 3.6, + 搜索DAU渗透率: 16, + }, + { + city: '济南', + 搜索UV: 5, + 端DAU: 5, + 搜索DAU渗透率: 16, + }, + { + city: '青岛', + 搜索UV: 2, + 端DAU: 1, + 搜索DAU渗透率: 19, + }, + { + city: '杭州', + 搜索UV: 7, + 端DAU: 2, + 搜索DAU渗透率: 90, + }, + { + city: '广东', + 搜索UV: 7.4, + 端DAU: 1.5, + 搜索DAU渗透率: 30, + }, + { + city: '无锡', + 搜索UV: 1, + 端DAU: 1, + 搜索DAU渗透率: 34, + }, + { + city: '重庆', + 搜索UV: 7, + 端DAU: 5, + 搜索DAU渗透率: 46, + }, + { + city: '成都', + 搜索UV: 3.4, + 端DAU: 2.3, + 搜索DAU渗透率: 49, + }, + { + city: '哈尔滨', + 搜索UV: 0.5, + 端DAU: 6.5, + 搜索DAU渗透率: 51, + }, + { + city: '内蒙古', + 搜索UV: 2.5, + 端DAU: 5, + 搜索DAU渗透率: 51, + }, + { + city: '云南', + 搜索UV: 1, + 端DAU: 5, + 搜索DAU渗透率: 53, + }, + { + city: '河北', + 搜索UV: 6, + 端DAU: 5, + 搜索DAU渗透率: 57, + }, + { + city: '陕西', + 搜索UV: 2, + 端DAU: 3, + 搜索DAU渗透率: 57, + }, + { + city: '苏州', + 搜索UV: 3, + 端DAU: 4.6, + 搜索DAU渗透率: 65, + }, + { + city: '四川', + 搜索UV: 6, + 端DAU: 7, + 搜索DAU渗透率: 68, + }, + { + city: '贵阳', + 搜索UV: 5, + 端DAU: 3.4, + 搜索DAU渗透率: 68, + }, + { + city: '台湾', + 搜索UV: 5, + 端DAU: 2, + 搜索DAU渗透率: 69, + }, + { + city: '哈尔滨', + 搜索UV: 2, + 端DAU: 7, + 搜索DAU渗透率: 78, + }, + { + city: '天津', + 搜索UV: 4.4, + 端DAU: 5, + 搜索DAU渗透率: 45, + }, + { + city: '长沙', + 搜索UV: 3.4, + 端DAU: 7, + 搜索DAU渗透率: 29, + }, + { + city: '沧州', + 搜索UV: 3, + 端DAU: 1, + 搜索DAU渗透率: 94, + }, + { + city: '宁波', + 搜索UV: 6, + 端DAU: 3, + 搜索DAU渗透率: 99, + }, +]; +const scatterPlot = new Scatter('container', { + width: 800, + height: 400, + autoFit: false, + appendPadding: 16, + data, + xField: '搜索UV', + yField: '端DAU', + sizeField: '搜索DAU渗透率', + size: [12, 30], + shape: 'circle', + pointStyle: { + fill: '#D6E3FD', + fillOpacity: 0.6, + stroke: '#6d9bf9', + }, + tooltip: { + showTitle: true, + showMarkers: false, + fields: ['搜索UV', '端DAU', '搜索DAU渗透率'], + customContent: (title, items) => { + const field = items?.[0]; + const formatterInfo = { + 搜索UV: (value) => value + '万', + 端DAU: (value) => value + '万', + 搜索DAU渗透率: () => '%', + }; + let htmlStr = `