Skip to content
本页导读

Point 气泡图

组件类型:UxChartComponentPublicInstance

平台兼容性

Android uni-app-xiOS uni-app-xweb小程序
xxx

示例代码

html
<template>
	<ux-page :colors="['black']">
		<ux-navbar title="Point" :border="false"></ux-navbar>

		<ux-col>
			<view style="height: 400px;">
				<ux-chart ref="UxChart" :data="chart"></ux-chart>
			</view>
		</ux-col>
	</ux-page>
</template>
<template>
	<ux-page :colors="['black']">
		<ux-navbar title="Point" :border="false"></ux-navbar>

		<ux-col>
			<view style="height: 400px;">
				<ux-chart ref="UxChart" :data="chart"></ux-chart>
			</view>
		</ux-col>
	</ux-page>
</template>
ts
<script>
	import { UXChart, UXChartGuideText } from "@/uni_modules/ux-frame/libs/types/chart.uts"

	export default {
		data() {
			return {
				
			}
		},
		computed: {
			chart() : UXChart {
				return {
					source: {
						data: this.getData(),
						conf: {
							x: {
							  alias: 'Daily fat intake', // 定义别名
							  tickInterval: 5, // 自定义刻度间距
							  nice: false, // 不对最大最小值优化
							  max: 96, // 自定义最大值
							  min: 62 // 自定义最小是
							},
							y: {
							  alias: 'Daily sugar intake',
							  tickInterval: 50,
							  nice: false,
							  max: 165,
							  min: 0
							},
							z: {
							  alias: 'Obesity(adults) %'
							}
						}
					},
					geom: {
						point: [{
							position: 'x*y',
							size: {
								field: 'z',
								range: [ 10, 40 ]
							},
							color: {
								color: '#1890ff',
							},
							shape: {
								shape: 'circle'
							},
							style: {
								field: 'x',
								style: {
									lineWidth: 1,
									stroke: '#1890ff',
									opacity: 0.3
								}
							},
							animate: {
								appear: {
									delay: 300
								}
							},
						}],
					},
					axis: [{
						field: 'x',
						conf: {
							label: `function (text) {
							  return {
							    text: text + ' gr' // 格式化坐标轴显示文本
							  };
							}`,
							grid: {
							  stroke: '#d9d9d9',
							  lineWidth: 1,
							  lineDash: [ 2, 2 ]
							}
						}
					}, 
					{
						field: 'y',
						conf: {
							line: `function() {
								return F2.Util.mix({}, F2.Global._defaultAxis.line, {
								  top: false
								})
							}`,
							label: `function (text) {
							  if (text > 0) {
							    return {
							      text: text + ' gr'
							    };
							  }
							}`
						}
					}],
					guide: {
						text: this.getData().map((e: UTSJSONObject):UXChartGuideText => {
							return {
								position: [ e.getNumber('x'), e.getNumber('y') ],
								content: e.getString('name'),
								style: {
								  textAlign: 'center',
								  textBaseline: 'middle',
								  fill: '#1890FF'
								}
							} as UXChartGuideText
						})
					}
				} as UXChart
			}
		},
		onLoad(e : OnLoadOptions) {
			
		},
		methods: {
			getData() : UTSJSONObject[] {
				return [{
					x: 95,
					y: 95,
					z: 13.8,
					name: 'BE',
					country: 'Belgium'
				}, {
					x: 86.5,
					y: 102.9,
					z: 14.7,
					name: 'DE',
					country: 'Germany'
				}, {
					x: 80.8,
					y: 91.5,
					z: 15.8,
					name: 'FI',
					country: 'Finland'
				}, {
					x: 80.4,
					y: 102.5,
					z: 12,
					name: 'NL',
					country: 'Netherlands'
				}, {
					x: 80.3,
					y: 86.1,
					z: 11.8,
					name: 'SE',
					country: 'Sweden'
				}, {
					x: 78.4,
					y: 70.1,
					z: 16.6,
					name: 'ES',
					country: 'Spain'
				}, {
					x: 74.2,
					y: 68.5,
					z: 14.5,
					name: 'FR',
					country: 'France'
				}, {
					x: 73.5,
					y: 83.1,
					z: 10,
					name: 'NO',
					country: 'Norway'
				}, {
					x: 71,
					y: 93.2,
					z: 24.7,
					name: 'UK',
					country: 'United Kingdom'
				}, {
					x: 69.2,
					y: 57.6,
					z: 10.4,
					name: 'IT',
					country: 'Italy'
				}, {
					x: 68.6,
					y: 20,
					z: 16,
					name: 'RU',
					country: 'Russia'
				}, {
					x: 65.5,
					y: 126.4,
					z: 35.3,
					name: 'US',
					country: 'United States'
				}, {
					x: 65.4,
					y: 50.8,
					z: 28.5,
					name: 'HU',
					country: 'Hungary'
				}, {
					x: 63.4,
					y: 51.8,
					z: 15.4,
					name: 'PT',
					country: 'Portugal'
				}, {
					x: 64,
					y: 82.9,
					z: 31.3,
					name: 'NZ',
					country: 'New Zealand'
				}] as UTSJSONObject[]
			},
		}
	}
</script>
<script>
	import { UXChart, UXChartGuideText } from "@/uni_modules/ux-frame/libs/types/chart.uts"

	export default {
		data() {
			return {
				
			}
		},
		computed: {
			chart() : UXChart {
				return {
					source: {
						data: this.getData(),
						conf: {
							x: {
							  alias: 'Daily fat intake', // 定义别名
							  tickInterval: 5, // 自定义刻度间距
							  nice: false, // 不对最大最小值优化
							  max: 96, // 自定义最大值
							  min: 62 // 自定义最小是
							},
							y: {
							  alias: 'Daily sugar intake',
							  tickInterval: 50,
							  nice: false,
							  max: 165,
							  min: 0
							},
							z: {
							  alias: 'Obesity(adults) %'
							}
						}
					},
					geom: {
						point: [{
							position: 'x*y',
							size: {
								field: 'z',
								range: [ 10, 40 ]
							},
							color: {
								color: '#1890ff',
							},
							shape: {
								shape: 'circle'
							},
							style: {
								field: 'x',
								style: {
									lineWidth: 1,
									stroke: '#1890ff',
									opacity: 0.3
								}
							},
							animate: {
								appear: {
									delay: 300
								}
							},
						}],
					},
					axis: [{
						field: 'x',
						conf: {
							label: `function (text) {
							  return {
							    text: text + ' gr' // 格式化坐标轴显示文本
							  };
							}`,
							grid: {
							  stroke: '#d9d9d9',
							  lineWidth: 1,
							  lineDash: [ 2, 2 ]
							}
						}
					}, 
					{
						field: 'y',
						conf: {
							line: `function() {
								return F2.Util.mix({}, F2.Global._defaultAxis.line, {
								  top: false
								})
							}`,
							label: `function (text) {
							  if (text > 0) {
							    return {
							      text: text + ' gr'
							    };
							  }
							}`
						}
					}],
					guide: {
						text: this.getData().map((e: UTSJSONObject):UXChartGuideText => {
							return {
								position: [ e.getNumber('x'), e.getNumber('y') ],
								content: e.getString('name'),
								style: {
								  textAlign: 'center',
								  textBaseline: 'middle',
								  fill: '#1890FF'
								}
							} as UXChartGuideText
						})
					}
				} as UXChart
			}
		},
		onLoad(e : OnLoadOptions) {
			
		},
		methods: {
			getData() : UTSJSONObject[] {
				return [{
					x: 95,
					y: 95,
					z: 13.8,
					name: 'BE',
					country: 'Belgium'
				}, {
					x: 86.5,
					y: 102.9,
					z: 14.7,
					name: 'DE',
					country: 'Germany'
				}, {
					x: 80.8,
					y: 91.5,
					z: 15.8,
					name: 'FI',
					country: 'Finland'
				}, {
					x: 80.4,
					y: 102.5,
					z: 12,
					name: 'NL',
					country: 'Netherlands'
				}, {
					x: 80.3,
					y: 86.1,
					z: 11.8,
					name: 'SE',
					country: 'Sweden'
				}, {
					x: 78.4,
					y: 70.1,
					z: 16.6,
					name: 'ES',
					country: 'Spain'
				}, {
					x: 74.2,
					y: 68.5,
					z: 14.5,
					name: 'FR',
					country: 'France'
				}, {
					x: 73.5,
					y: 83.1,
					z: 10,
					name: 'NO',
					country: 'Norway'
				}, {
					x: 71,
					y: 93.2,
					z: 24.7,
					name: 'UK',
					country: 'United Kingdom'
				}, {
					x: 69.2,
					y: 57.6,
					z: 10.4,
					name: 'IT',
					country: 'Italy'
				}, {
					x: 68.6,
					y: 20,
					z: 16,
					name: 'RU',
					country: 'Russia'
				}, {
					x: 65.5,
					y: 126.4,
					z: 35.3,
					name: 'US',
					country: 'United States'
				}, {
					x: 65.4,
					y: 50.8,
					z: 28.5,
					name: 'HU',
					country: 'Hungary'
				}, {
					x: 63.4,
					y: 51.8,
					z: 15.4,
					name: 'PT',
					country: 'Portugal'
				}, {
					x: 64,
					y: 82.9,
					z: 31.3,
					name: 'NZ',
					country: 'New Zealand'
				}] as UTSJSONObject[]
			},
		}
	}
</script>
css
<style lang="scss">

</style>
<style lang="scss">

</style>

上次更新: