Skip to content

快速上手

本节将介绍如何在项目中使用 UxChart,请认真阅读本章节

请使用最新HBuilderX版本

平台兼容性

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

介绍

UxChart 是基于F2图表开发的一个图表组件库,提供一个统一的图表开发接口,方便开发者快速开发UNI-APP-X图表

F2 是什么?

F2 是一个基于Canvas2D的图表库,提供一个统一的图表开发接口,方便开发者快速开发图表。

为了更好得使用 UxChart 进行数据可视化,我们需要了解 F2 图表的组成以及相关术语

术语类型说明
坐标轴Axis每个图表通常包含两个坐标轴,在直角坐标系(笛卡尔坐标系)下,分别为 x 轴和 y 轴,在极坐标轴下,则分别由角度和半径 2 个维度构成。每个坐标轴由坐标轴线(line)、刻度线(tickLine)、刻度文本(label)以及网格线(grid)组成
图例Legend图例作为图表的辅助元素,用于标定不同的数据类型以及数据的范围,用于辅助阅读图表以及帮助用户在图表中进行数据的筛选过滤
几何标记Geometry即我们所说的点、线、面这些几何图形,在图形语法 中几何标记的类型决定了生成图表的类型。也就是数据被可视化后的实际表现,不同的几何标记都包含对应的图形属性
图形属性Attribute图形属性对应视觉编码中的视觉通道,是图形语法元素非常重要和灵活的一部分,不同的几何标记拥有自己的图形属性,F2 提供了位置(position)、颜色(color)、大小(size)、形状(shape)这四种图形属性
坐标系Coordinate坐标系是将两种位置标度结合在一起组成的 2 维定位系统,描述了数据是如何映射到图形所在的平面
提示信息Tooltip当鼠标悬停在某个点上时,会以提示框的形式显示当前点对应的数据的信息,比如该点的值,数据单位等,帮助用户从图表中获取具体的数据信息
辅助标记Guide当需要在图表上绘制一些辅助线、辅助框或者文本时,比如增加预警线、最高值线或者标示明显的范围区域时,辅助标记 Guide 是非常有用的工具

UxChart 组件

组件类型:UxChartComponentPublicInstance

Props

属性名类型默认值说明
dataUXChart-图表配置数据
showLoadingBooleantrue显示加载中
loadingTextString'加载中...'加载中文案

Events

事件名说明回调参数
message回调消息事件WebViewMessageEvent
loading加载中事件WebViewLoadingEvent
loaded加载完成事件WebViewLoadedEvent
error加载失败事件WebViewErrorEvent

TIP

js函数用 `` 包裹成函数字符串,框架会自动解析成js函数

js
onShow: `function (ev) {
  const items = ev.items;
  items[0].name = null;
  items[0].name = items[0].title;
  items[0].value = '¥ ' + items[0].value;
}`
onShow: `function (ev) {
  const items = ev.items;
  items[0].name = null;
  items[0].name = items[0].title;
  items[0].value = '¥ ' + items[0].value;
}`

示例代码

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

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

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

	export default {
		data() {
			return {
				
			}
		},
		computed: {
			chart() : UXChart {
				return {
					source: {
						data: this.getData(),
						conf: {
							sales: {
							  tickCount: 5
							}
						}
					},
					geom: {
						interval: [{
							position: 'year*sales',
						}]
					},
					axis: [{
						field: 'year'
					}],
					tooltip: {
						showItemMarker: false,
						onShow: `function (ev) {
						  const items = ev.items;
						  items[0].name = null;
						  items[0].name = items[0].title;
						  items[0].value = '¥ ' + items[0].value;
						}`
					},
				} as UXChart
			}
		},
		onLoad(e : OnLoadOptions) {
			
		},
		methods: {
			getData() : UTSJSONObject[] {
				return [{
					year: '1951 年',
					sales: 38
				}, {
					year: '1952 年',
					sales: 52
				}, {
					year: '1956 年',
					sales: 61
				}, {
					year: '1957 年',
					sales: 145
				}, {
					year: '1958 年',
					sales: 48
				}, {
					year: '1959 年',
					sales: 38
				}, {
					year: '1960 年',
					sales: 38
				}, {
					year: '1962 年',
					sales: 38
				}] as UTSJSONObject[]
			},
		}
	}
</script>
<script>
	import { UXChart } from "@/uni_modules/ux-frame/libs/types/chart.uts"

	export default {
		data() {
			return {
				
			}
		},
		computed: {
			chart() : UXChart {
				return {
					source: {
						data: this.getData(),
						conf: {
							sales: {
							  tickCount: 5
							}
						}
					},
					geom: {
						interval: [{
							position: 'year*sales',
						}]
					},
					axis: [{
						field: 'year'
					}],
					tooltip: {
						showItemMarker: false,
						onShow: `function (ev) {
						  const items = ev.items;
						  items[0].name = null;
						  items[0].name = items[0].title;
						  items[0].value = '¥ ' + items[0].value;
						}`
					},
				} as UXChart
			}
		},
		onLoad(e : OnLoadOptions) {
			
		},
		methods: {
			getData() : UTSJSONObject[] {
				return [{
					year: '1951 年',
					sales: 38
				}, {
					year: '1952 年',
					sales: 52
				}, {
					year: '1956 年',
					sales: 61
				}, {
					year: '1957 年',
					sales: 145
				}, {
					year: '1958 年',
					sales: 48
				}, {
					year: '1959 年',
					sales: 38
				}, {
					year: '1960 年',
					sales: 38
				}, {
					year: '1962 年',
					sales: 38
				}] as UTSJSONObject[]
			},
		}
	}
</script>
css
<style lang="scss">
	
</style>
<style lang="scss">
	
</style>