模板版本:v0.4.0
react-native-charts-wrapper
本项目基于 [react-native-charts-wrapper](https://github.com/wuxudong/react-native-charts-wrapper) 开发。
该第三方库的仓库已迁移至 Gitcode,且支持直接从 npm 下载,新的包名为:@react-native-ohos/react-native-charts-wrapper 版本所属关系如下:
1. 安装与使用
进入到工程目录并输入以下命令:
npm
npm install @react-native-ohos/react-native-charts-wrapper
yarn
yarn add @react-native-ohos/react-native-charts-wrapper
下面的代码展示了这个库的基本使用场景:
import { StyleSheet } from 'react-native';
import { BarChart } from "react-native-charts-wrapper";
const BarChartDemo = () => {
const data = [
{ x: 1, y: 20 },
{ x: 2, y: 43 },
{ x: 3, y: 21 },
{ x: 4, y: 33 },
{ x: 5, y: 23 },
{ x: 6, y: 44 },
{ x: 7, y: 5 },
{ x: 8, y: 12 },
];
return (
<BarChart
style={styles.chart}
data={{
dataSets: [
{
label: "demo",
values: data,
},
],
}}
animation={{ durationX: 2000, durationY: 2000 }}
/>
);
};
const styles = StyleSheet.create({
chart: {
flex: 1,
height: 400,
},
});
export default BarChartDemo;
2. 使用 Codegen
本库已经适配了 Codegen ,在使用前需要主动执行生成三方库桥接代码,详细请参考 Codegen 使用文档。
3. Link
|
是否支持autolink |
RN框架版本 |
| ~0.8.0 |
Yes |
0.82 |
| ~0.7.0 |
No |
0.77 |
| ~0.6.1 |
Yes |
0.72 |
| <= 0.6.0-0.0.7@deprecated |
No |
0.72 |
使用AutoLink的工程需要根据该文档配置,Autolink框架指导文档:https://gitcode.com/openharmony-sig/ohos_react_native/blob/master/docs/zh-cn/Autolinking.md
如您使用的版本支持 Autolink,并且工程已接入 Autolink,可跳过ManualLink配置。
ManualLink: 此步骤为手动配置原生依赖项的指导
首先需要使用 DevEco Studio 打开项目里的 HarmonyOS 工程 harmony
3.1. 在工程根目录的 oh-package.json5 添加 overrides 字段
{
...
"overrides": {
"@rnoh/react-native-openharmony" : "./react_native_openharmony"
}
}
3.2. 引入原生端代码
目前有两种方法:
- 通过 har 包引入(在 IDE 完善相关功能后该方法会被遗弃,目前首选此方法);
- 直接链接源码。
方法一:通过 har 包引入(推荐)
har 包位于三方库安装路径的 `harmony` 文件夹下。
打开 entry/oh-package.json5,添加以下依赖
"dependencies": {
"@rnoh/react-native-openharmony": "file:../react_native_openharmony",
"@react-native-ohos/react-native-charts-wrapper": "file:../../node_modules/@react-native-ohos/react-native-charts-wrapper/harmony/charts_wrapper.har"
}
点击右上角的 sync 按钮
或者在终端执行:
cd entry
ohpm install
方法二:直接链接源码
如需使用直接链接源码,请参考[直接链接源码说明](./link-source-code.md)
3.3. 配置 CMakeLists 和引入 ChartsWrapperPackage
若使用RN框架版本是0.72,且>=0.6.1版本需配置 CMakeLists 和引入 ChartsWrapperPackage,其他版本可跳过本章
打开 entry/src/main/cpp/CMakeLists.txt,添加:
project(rnapp)
cmake_minimum_required(VERSION 3.4.1)
set(CMAKE_SKIP_BUILD_RPATH TRUE)
set(RNOH_APP_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(NODE_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../node_modules")
+ set(OH_MODULES "${CMAKE_CURRENT_SOURCE_DIR}/../../../oh_modules")
+ set(RNOH_GENERATED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/generated")
set(RNOH_CPP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../react-native-harmony/harmony/cpp")
set(LOG_VERBOSITY_LEVEL 1)
set(CMAKE_ASM_FLAGS "-Wno-error=unused-command-line-argument -Qunused-arguments")
set(CMAKE_CXX_FLAGS "-fstack-protector-strong -Wl,-z,relro,-z,now,-z,noexecstack -s -fPIE -pie")
set(WITH_HITRACE_SYSTRACE 1) # for other CMakeLists.txt files to use
add_compile_definitions(WITH_HITRACE_SYSTRACE)
add_subdirectory("${RNOH_CPP_DIR}" ./rn)
# RNOH_BEGIN: manual_package_linking_1
add_subdirectory("../../../../sample_package/src/main/cpp" ./sample-package)
+ add_subdirectory("${OH_MODULES}/@react-native-ohos/react-native-charts-wrapper/src/main/cpp" ./charts-wrapper)
# RNOH_END: manual_package_linking_1
file(GLOB GENERATED_CPP_FILES "./generated/*.cpp")
add_library(rnoh_app SHARED
${GENERATED_CPP_FILES}
"./PackageProvider.cpp"
"${RNOH_CPP_DIR}/RNOHAppNapiBridge.cpp"
)
target_link_libraries(rnoh_app PUBLIC rnoh)
# RNOH_BEGIN: manual_package_linking_2
target_link_libraries(rnoh_app PUBLIC rnoh_sample_package)
+ target_link_libraries(rnoh_app PUBLIC rnoh_charts_wrapper)
# RNOH_END: manual_package_linking_2
打开 entry/src/main/cpp/PackageProvider.cpp,添加:
#include "RNOH/PackageProvider.h"
#include "generated/RNOHGeneratedPackage.h"
#include "SamplePackage.h"
+ #include "ChartsWrapperPackage.h"
using namespace rnoh;
std::vector<std::shared_ptr<Package>> PackageProvider::getPackages(Package::Context ctx) {
return {
std::make_shared<RNOHGeneratedPackage>(ctx),
std::make_shared<SamplePackage>(ctx),
+ std::make_shared<ChartsWrapperPackage>(ctx),
};
}
3.4. 在 ArkTs 侧引入 BarCharts、LineCharts、HorizontalBarCharts 、BubbleCharts、PieCharts、RadarCharts、ScatterCharts、CandleStickCharts、CombinedCharts 组件
找到 function buildCustomComponent(),一般位于 entry/src/main/ets/pages/index.ets 或 entry/src/main/ets/rn/LoadBundle.ets,添加:
...
+ import {
+ BarCharts,
+ LineCharts,
+ HorizontalBarCharts,
+ BubbleCharts,
+ PieCharts,
+ RadarCharts,
+ ScatterCharts,
+ CandleStickCharts,
+ CombinedCharts
+ } from "@react-native-ohos/react-native-charts-wrapper"
@Builder
export function buildCustomRNComponent(ctx: ComponentBuilderContext) {
...
+ if (ctx.componentName === BarCharts.NAME) {
+ BarCharts({
+ ctx: ctx.rnComponentContext,
+ tag: ctx.tag
+ })
+ }
+ if (ctx.componentName === LineCharts.NAME) {
+ LineCharts({
+ ctx: ctx.rnComponentContext,
+ tag: ctx.tag
+ })
+ }
+ if (ctx.componentName === HorizontalBarCharts.NAME) {
+ HorizontalBarCharts({
+ ctx: ctx.rnComponentContext,
+ tag: ctx.tag
+ })
+ }
+ if (ctx.componentName === BubbleCharts.NAME) {
+ BubbleCharts({
+ ctx: ctx.rnComponentContext,
+ tag: ctx.tag
+ })
+ }
+ if (ctx.componentName === PieCharts.NAME) {
+ PieCharts({
+ ctx: ctx.rnComponentContext,
+ tag: ctx.tag
+ })
+ }
+ if (ctx.componentName === RadarCharts.NAME) {
+ RadarCharts({
+ ctx: ctx.rnComponentContext,
+ tag: ctx.tag
+ })
+ }
+ if (ctx.componentName === ScatterCharts.NAME) {
+ ScatterCharts({
+ ctx: ctx.rnComponentContext,
+ tag: ctx.tag
+ })
+ }
+ if (ctx.componentName === CandleStickCharts.NAME) {
+ CandleStickCharts({
+ ctx: ctx.rnComponentContext,
+ tag: ctx.tag
+ })
+ }
+ if (ctx.componentName === CombinedCharts.NAME) {
+ CombinedCharts({
+ ctx: ctx.rnComponentContext,
+ tag: ctx.tag
+ })
+ }
...
}
在entry/src/main/ets/pages/index.ets 或 entry/src/main/ets/rn/LoadBundle.ets 找到常量 arkTsComponentNames 在其数组里添加组件名
const arkTsComponentNames: Array<string> = [
SampleView.NAME,
GeneratedSampleView.NAME,
PropsDisplayer.NAME,
+ BarCharts.NAME,
+ LineCharts.NAME,
+ HorizontalBarCharts.NAME,
+ BubbleCharts.NAME,
+ PieCharts.NAME,
+ RadarCharts.NAME,
+ ScatterCharts.NAME,
+ CandleStickCharts.NAME,
+ CombinedCharts.NAME
];
3.5. 在 ArkTs 侧引入 ChartsWrapperPackage
打开 entry/src/main/ets/RNPackagesFactory.ts,添加:
...
+ import {ChartsWrapperPackage} from '@react-native-ohos/react-native-charts-wrapper/ts';
export function createRNPackages(ctx: RNPackageContext): RNPackage[] {
return [
new SamplePackage(ctx),
+ new ChartsWrapperPackage(ctx)
];
}
3.6. 运行
点击右上角的 sync 按钮
或者在终端执行:
cd entry
ohpm install
然后编译、运行即可。
4. 约束与限制
4.1. 兼容性
要使用此库,需要使用正确的 React-Native 和 RNOH 版本。另外,还需要使用配套的 DevEco Studio 和 手机 ROM。
在以下版本验证通过:
- RNOH: 0.72.96; SDK: HarmonyOS 6.0.0 Release SDK; IDE: DevEco Studio 6.0.0.858; ROM: 6.0.0.112;
- RNOH: 0.72.33; SDK: HarmonyOS NEXT B1; IDE: DevEco Studio: 5.0.3.900; ROM: Next.0.0.71;
- RNOH: 0.77.18; SDK: HarmonyOS 6.0.0 Release SDK; IDE: DevEco Studio 6.0.0.858; ROM: 6.0.0.112;
- RNOH: 0.82.1; SDK: HarmonyOS 6.0.1 Release SDK; IDE: DevEco Studio 6.0.1 Release; ROM:6.0.0.120 SP7
5. 属性
"Platform"列表示该属性在原三方库上支持的平台。
"HarmonyOS Support"列为 yes 表示 HarmonyOS 平台支持该属性;no 则表示不支持;partially 表示部分支持。使用方法跨平台一致,效果对标 iOS 或 Android 的效果。
Common Props
Description
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| text |
设置要显示为说明的文本 |
string |
No |
iOS/Android |
Yes |
| textColor |
设置用于标签的文本颜色 |
number |
No |
iOS/Android |
Yes |
| textSize |
设置标签文本的大小 |
number |
No |
iOS/Android |
Yes |
| positionX |
设置说明文本在屏幕上的自定义位置 |
number |
No |
iOS/Android |
Yes |
| positionY |
设置说明文本在屏幕上的自定义位置 |
number |
No |
iOS/Android |
Yes |
Legend
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| enabled |
是否设置图表图例部件 |
bool |
No |
iOS/Android |
Yes |
| text |
设置要显示为图例的文本 |
string |
No |
iOS/Android |
Yes |
| textColor |
设置图例文本的颜色 |
number |
No |
iOS/Android |
Yes |
| textSize |
设置图例文本的大小 |
number |
No |
iOS/Android |
Yes |
| fontFamily |
图例部件的字体 |
string |
No |
iOS/Android |
Yes |
| wordWrapEnabled |
设置图例文字是否换行 |
bool |
No |
iOS/Android |
Yes |
| maxSizePercent |
图例部件最大大小百分比 |
number |
No |
iOS/Android |
NO |
| horizontalAlignment |
图例部件水平对齐 |
one of 'LEFT', 'CENTER', 'RIGHT' |
No |
iOS/Android |
Yes |
| verticalAlignment |
图例部件垂直对齐 |
one of 'TOP', 'CENTER', 'BOTTOM' |
No |
iOS/Android |
Yes |
| orientation |
设置图例的方向 |
one of 'HORIZONTAL', 'VERTICAL' |
No |
iOS/Android |
Yes |
| drawInside |
图例部件是否在内部绘制 |
bool |
No |
iOS/Android |
Yes |
| direction |
设置图例的文本方向 |
one of LEFT_TO_RIGHT', 'RIGHT_TO_LEFT |
No |
iOS/Android |
Yes |
| form |
设置图例形式的形式/形状 |
string |
No |
iOS/Android |
Yes |
| formSize |
设置图例格式的大小 |
number |
No |
iOS/Android |
Yes |
| xEntrySpace |
设置横轴上图例条目的间距 |
number |
No |
iOS/Android |
Yes |
| yEntrySpace |
设置竖轴上图例条目的间距 |
number |
No |
iOS/Android |
Yes |
| formToTextSpace |
图例部件图标到文字的间距 |
number |
No |
iOS/Android |
Yes |
| custom |
设置自定义图例的条目数组 |
{ colors: [number], labels: [string] } |
No |
iOS/Android |
NO |
xAxis and yAxis
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| enabled |
是否绘制该组件 |
bool |
No |
iOS/Android |
Yes |
| drawLabels |
设置绘制此轴的标签 |
bool |
No |
iOS/Android |
Yes |
| drawAxisLine |
设置轴旁边的线 |
bool |
No |
iOS/Android |
Yes |
| drawGridLines |
是否启用此轴的网格线绘制 |
bool |
No |
iOS/Android |
Yes |
| textColor |
设置用于标签的文本颜色 |
number |
No |
iOS/Android |
Yes |
| textSize |
设置用于标签的文本大小 |
number |
No |
iOS/Android |
Yes |
| fontFamily |
X 轴 Y 轴标签的字体 |
string |
No |
iOS/Android |
Yes |
| gridColor |
设置此坐标轴的网格线(水平线)的颜色 |
number |
No |
iOS/Android |
Yes |
| gridLineWidth |
设置远离每个轴绘制的栅格线的宽度 |
number |
No |
iOS/Android |
Yes |
| axisLineColor |
设置图表周围边框的颜色 |
number |
No |
iOS/Android |
Yes |
| axisLineWidth |
设置图表周围边框的宽度 |
number |
No |
iOS/Android |
Yes |
| gridDashedLine |
设置以虚线模式绘制网格线 |
{ lineLength: number, spaceLength: number, phase: number } |
No |
iOS/Android |
Yes |
| limitLines |
设置限制线 |
array[] |
No |
iOS/Android |
Yes |
| drawLimitLinesBehindData |
设置在实际数据之后绘制限制线 |
bool |
No |
iOS/Android |
Yes |
| axisMaximum |
设置轴的最大标签数 |
number |
No |
iOS/Android |
Yes |
| axisMinimum |
设置轴的最小标签数 |
number |
No |
iOS/Android |
Yes |
| granularity |
设置轴放大时的最小间隔 |
number |
No |
iOS/Android |
Yes |
| granularityEnabled |
设置轴值间隔的粒度控制 |
bool |
No |
iOS/Android |
Yes |
| labelCount |
设置 y 轴的标签条目数 |
number |
No |
iOS/Android |
Yes |
| labelCountForce |
设置 y 轴的标签条目数 |
bool |
No |
iOS/Android |
Yes |
| centerAxisLabels |
将轴标签居中,而不是在其原始位置绘制它们 |
bool |
No |
iOS/Android |
Yes |
xAxis
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| labelRotationAngle |
设置绘制 X 轴标签的角度(以度为单位) |
number |
No |
iOS/Android |
Yes |
| avoidFirstLastClipping |
如果设置为 true,图表将避免第一个和最后一个标签条目 |
bool |
No |
iOS/Android |
Yes |
| position |
设置 X 轴标签的位置 |
one of 'TOP', 'BOTTOM', 'BOTH_SIDED', 'TOP_INSIDE', 'BOTTOM_INSIDE' |
No |
iOS/Android |
Yes |
| yOffset |
为该轴上的标签设置使用的 y 轴偏移量 |
number |
No |
iOS/Android |
Yes |
yAxis
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| inverted |
设置为 true,则反转 y 轴,这意味着低值位于图表底部 |
bool |
No |
iOS/Android |
Yes |
| spaceTop |
设置顶轴间距,以占满量程的百分比为单位 |
number |
No |
iOS/Android |
Yes |
| spaceBottom |
设置底轴间距,以占满量程的百分比为单位 |
number |
No |
iOS/Android |
Yes |
| position |
设置 y 标签的位置 |
'OUTSIDE_CHART', 'INSIDE_CHART' |
No |
iOS/Android |
Yes |
| maxWidth |
设置轴可以采用的最大宽度 |
number |
No |
iOS/Android |
Yes |
| minWidth |
设置轴可以采用的最小宽度 |
number |
No |
iOS/Android |
Yes |
| zeroLine |
设置零轴线 |
{ enabled?: bool, lineWidth?: number, lineColor?: number } |
No |
iOS/Android |
Yes |
Chart Base
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| animation |
设置图表动画 |
object |
No |
iOS/Android |
Yes |
| chartBackgroundColor |
设置图表背景颜色 |
number |
No |
iOS/Android |
NO |
| logEnabled |
启用日志 |
bool |
No |
iOS/Android |
NO |
| noDataText |
设置无数据文本 |
string |
No |
iOS/Android |
Yes |
| noDataTextColor |
设置无数据文本颜色 |
number |
No |
iOS/Android |
Yes |
| touchEnabled |
设置触摸 |
bool |
No |
iOS/Android |
Yes |
| dragDecelerationEnabled |
设置拖拽减速 |
bool |
No |
iOS/Android |
Yes |
| dragDecelerationFrictionCoef |
设置阻力减速摩擦系数 |
number (0–1) |
No |
iOS/Android |
Yes |
| chartDescription |
设置描述部件 |
object (Description) |
No |
iOS/Android |
Yes |
| legend |
设置图例 |
object (Legend) |
No |
iOS/Android |
Yes |
| xAxis |
设置 X 轴 |
object (xAxis) |
No |
iOS/Android |
Yes |
| highlights |
设置高亮 |
Array<{ x: number, dataSetIndex?: number, dataIndex?: number, y?: number, stackIndex?: number }> |
No |
iOS/Android |
NO |
BarLineChartBase
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| drawGridBackground |
是否设置网格背景颜色 |
bool |
No |
iOS/Android |
Yes |
| gridBackgroundColor |
设置网格背景颜色 |
number |
No |
iOS/Android |
Yes |
| drawBorders |
是否设置边框 |
bool |
No |
iOS/Android |
Yes |
| borderColor |
设置边框颜色 |
number |
No |
iOS/Android |
Yes |
| borderWidth |
设置边框宽度 |
number |
No |
iOS/Android |
Yes |
| minOffset |
设置最小偏移 |
number |
No |
iOS/Android |
Yes |
| maxVisibleValueCount |
设置最大条目数 |
number |
No |
iOS/Android |
Yes |
| visibleRange |
限制通过捏合和缩放可以看到的最大和最小 x 范围 |
object |
No |
iOS/Android |
NO |
| autoScaleMinMaxEnabled |
是否设置 Y 轴的自动缩放标记 |
bool |
No |
iOS/Android |
Yes |
| keepPositionOnRotation |
设置图表在旋转(方向更改)后是否应保持其位置(缩放/滚动 |
bool |
No |
iOS/Android |
NO |
| scaleEnabled |
是否启用缩放 |
bool |
No |
iOS/Android |
Yes |
| scaleXEnabled |
是否启用 X 轴缩放 |
bool |
No |
iOS/Android |
Yes |
| scaleYEnabled |
是否启用 Y 轴缩放 |
bool |
No |
iOS/Android |
Yes |
| dragEnabled |
是否设置拖动 |
bool |
No |
iOS/Android |
Yes |
| pinchZoom |
如果设置为 true,则 x 和 y 轴都可以用 2 个手指同时缩放,如果为 false,x 轴和 y 轴可以单独缩放 |
bool |
No |
iOS/Android |
Yes |
| doubleTapToZoomEnabled |
将此属性设置为 true 可通过双击图表启用放大功能 |
bool |
No |
iOS/Android |
Yes |
| yAxis |
设置 Y 轴 |
{ left: YAxis, right: YAxis } |
No |
iOS/Android |
Yes |
| zoom |
按给定的比例因子放大或缩小 |
object |
No |
iOS/Android |
Yes |
| viewPortOffsets |
设置当前 ViewPort 的自定义偏移(在视图两侧的偏移) |
object |
No |
iOS/Android |
Yes |
Data Config Type
Common
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| colors |
设置应用于此数据集的颜色,由多个颜色组成 |
number[] |
No |
iOS/Android |
Yes |
| highlightEnabled |
设置是否高亮 |
bool |
No |
iOS/Android |
Yes |
| drawValues |
设置绘制值 |
bool |
No |
iOS/Android |
Yes |
| valueTextSize |
设置值的文本大小 |
number |
No |
iOS/Android |
Yes |
| valueTextColor |
设置值的文本颜色 |
number |
No |
iOS/Android |
Yes |
| visible |
设置值是否可见 |
bool |
No |
iOS/Android |
Yes |
| valueFormatter |
设置数据格式器 |
string |
No |
iOS/Android |
NO |
| axisDependency |
设置绘制此数据集所依据的 Y 轴(左轴或右轴) |
string |
No |
iOS/Android |
Yes |
barLineScatterCandleBubble
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| highlightColor |
设置用于绘制突出显示指示器的颜色 |
number |
No |
iOS/Android |
Yes |
lineScatterCandleRadar
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| drawVerticalHighlightIndicator |
启用/禁用垂直突出显示指示器。如果禁用,则不绘制指示器。 |
bool |
No |
iOS/Android |
Yes |
| drawHorizontalHighlightIndicator |
启用/禁用水平突出显示指示器。如果禁用,则不绘制指示器 |
bool |
No |
iOS/Android |
Yes |
| highlightLineWidth |
高亮线宽 |
number |
No |
iOS/Android |
Yes |
lineRadar
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| fillColor |
填充颜色 |
number |
No |
iOS/Android |
Yes |
| fillAlpha |
填充透明度 |
number |
No |
iOS/Android |
Yes |
| drawFilled |
是否填充 |
bool |
No |
iOS/Android |
Yes |
PieRadarChartBase
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| minOffset |
设置图表周围的最小偏移量(填充),默认值为 0 |
number |
No |
iOS/Android |
Yes |
| rotationEnabled |
将此属性设置为 true 可通过触摸启用图表的旋转 |
bool |
No |
iOS/Android |
Yes |
| rotationAngle |
为雷达图的旋转设置偏移量(以度为单位) |
number |
No |
iOS/Android |
Yes |
BarChart
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| drawValueAboveBar |
如果设置为 true,则所有值都绘制在其条形上方,而不是绘制在其顶部下方。 |
bool |
No |
iOS/Android |
Yes |
| drawBarShadow |
如果设置为 true,则在每个条形后面绘制一个灰色区域,表示最大值 |
bool |
No |
iOS/Android |
Yes |
| barWidth |
设置每个条形在x轴上应具有的宽度 |
number |
No |
iOS/Android |
Yes |
| topRadius |
设置顶部圆角半径 |
number |
No |
iOS/Android |
Yes |
| group |
所有BarDataSet对象组合在一起 |
object |
No |
iOS/Android |
Yes |
| data |
柱状图数据 |
BarData |
Yes |
iOS/Android |
Yes |
BarData Config
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| barShadowColor |
设置用于绘制条形阴影的颜色 |
number |
No |
iOS/Android |
Yes |
| highlightAlpha |
设置用于绘制高光的 alpha 值(透明度 |
number |
No |
iOS/Android |
Yes |
| stackLabels |
为不同值的条形栈设置标签 |
string[] |
No |
iOS/Android |
NO |
| common |
公共数据数据 |
Data Config Type.Common |
No |
iOS/Android |
Yes |
| barLineScatterCandleBubble |
柱状图、条形图、散点图、气泡图、烛台图的公共基础数据 |
Data Config Type.CommonConfigType.barLineScatterCandleBubble |
No |
iOS/Android |
Yes |
BarData Values
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| X |
X 轴数据 |
number |
Yes |
iOS/Android |
Yes |
| Y |
Y 轴数据 |
number |
Yes |
iOS/Android |
Yes |
HorizontalBarChart
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| data |
水平柱状图数据 |
BarData |
Yes |
iOS/Android |
Yes |
CandleStickChart
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| data |
烛台图数据 |
CandleData |
Yes |
iOS/Android |
Yes |
CandleData Config
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| common |
公共数据数据 |
Data Config Type.Common |
No |
iOS/Android |
Yes |
| barLineScatterCandleBubble |
柱状图、条形图、散点图、气泡图、烛台图的公共基础数据 |
Data Config Type.CommonConfigType.barLineScatterCandleBubble |
No |
iOS/Android |
Yes |
| lineScatterCandleRadar |
柱状图、烛台图、散点图、雷达图的公共基础数据 |
Data Config Type.CommonConfigType.lineScatterCandleRadar |
No |
iOS/Android |
Yes |
| barSpace |
设置在每个的左侧和右侧留出的空间 烛光 |
number |
No |
iOS/Android |
Yes |
| shadowWidth |
以像素为单位设置蜡烛阴影线的宽度。 |
number |
No |
iOS/Android |
Yes |
| shadowColor |
设置所有条目的阴影颜色 |
number |
No |
iOS/Android |
Yes |
| shadowColorSameAsCandle |
将阴影颜色设置为与蜡烛颜色相同的颜色 |
bool |
No |
iOS/Android |
Yes |
| neutralColor |
设置在以下情况下应用于此数据集的唯一颜色 *打开==关闭。 |
number |
No |
iOS/Android |
Yes |
| decreasingColor |
设置在以下情况下应用于此数据集的唯一颜色 *打开>关闭。 |
number |
No |
iOS/Android |
Yes |
| decreasingPaintStyle |
设置打开>关闭时的绘制样式 |
string |
No |
iOS/Android |
Yes |
| increasingColor |
设置在以下情况下应用于此数据集的唯一颜色 * open <= close。 |
number |
No |
iOS/Android |
Yes |
| increasingPaintStyle |
设置打开<关闭时的绘制样式 |
string |
No |
iOS/Android |
Yes |
CandleData Values
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| x |
X 轴数据 |
number |
No |
iOS/Android |
Yes |
| shadowH |
阴影 H |
number |
Yes |
iOS/Android |
Yes |
| shadowL |
阴影 L |
number |
Yes |
iOS/Android |
Yes |
| open |
打开的 |
number |
Yes |
iOS/Android |
Yes |
| close |
关闭的 |
number |
Yes |
iOS/Android |
Yes |
CombinedChart
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| data |
组合图数据 |
combinedData |
Yes |
iOS/Android |
Yes |
combinedData
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| lineData |
折线图数据 |
lineData |
No |
iOS/Android |
Yes |
| barData |
柱状图数据 |
barData |
No |
iOS/Android |
Yes |
| scatterData |
散点图数据 |
scatterData |
No |
iOS/Android |
Yes |
| candleData |
烛台图数据 |
candleData |
No |
iOS/Android |
Yes |
| bubbleData |
气泡图数据 |
bubbleData |
No |
iOS/Android |
Yes |
BubbleChart
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| data |
气泡图数据 |
bubbleData |
Yes |
iOS/Android |
Yes |
BubbleData Config
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| common |
公共数据数据 |
Data Config Type.Common |
No |
iOS/Android |
Yes |
| barLineScatterCandleBubble |
柱状图、条形图、散点图、气泡图、烛台图的公共基础数据 |
Data Config Type.CommonConfigType.barLineScatterCandleBubble |
No |
iOS/Android |
Yes |
BubbleData Values
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| x |
X 轴数据 |
number |
No |
iOS/Android |
Yes |
| y |
Y 轴数据 |
number |
Yes |
iOS/Android |
Yes |
| size |
大小 |
number |
Yes |
iOS/Android |
Yes |
LineChart
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| data |
折线图数据 |
LineData |
Yes |
iOS/Android |
Yes |
LineData Config
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| common |
公共数据数据 |
Data Config Type.Common |
No |
iOS/Android |
Yes |
| barLineScatterCandleBubble |
柱状图、条形图、散点图、气泡图、烛台图的公共基础数据 |
Data Config Type.CommonConfigType.barLineScatterCandleBubble |
No |
iOS/Android |
Yes |
| lineScatterCandleRadar |
柱状图、烛台图、散点图、雷达图的公共基础数据 |
Data Config Type.CommonConfigType.lineScatterCandleRadar |
No |
iOS/Android |
Yes |
| lineRadar |
折线图、雷达图公共数据 |
Data Config Type.lineRadar |
No |
iOS/Android |
Yes |
| circleRadius |
设置绘制的圆的半径 |
number |
No |
iOS/Android |
Yes |
| drawCircles |
将此值设置为 true 以启用此的圆圈指示器的绘制数据集,默认为 true |
bool |
No |
iOS/Android |
Yes |
| mode |
设置 lineDataSet 的绘制模式 |
'LINEAR', 'STEPPED', 'CUBIC_BEZIER', 'HORIZONTAL_BEZIER' |
No |
iOS/Android |
Yes |
| lineWidth |
折线宽度 |
number |
No |
iOS/Android |
Yes |
| drawCubicIntensity |
设置曲线弧度 |
number |
No |
iOS/Android |
NO |
| circleColor |
设置应该用于此数据集的唯一颜色 |
number |
No |
iOS/Android |
Yes |
| circleColors |
设置应该用于此数据集的颜色集 |
number[] |
No |
iOS/Android |
Yes |
| circleHoleColor |
设置线条圆的内圆的颜色。 |
number |
No |
iOS/Android |
Yes |
| drawCircleHole |
许在每个数据圆圈中绘制一个孔 |
bool |
No |
iOS/Android |
Yes |
| dashedLine |
折线设置为虚线 |
object |
No |
iOS/Android |
Yes |
| fillFormatter |
设置填充 |
object |
No |
iOS/Android |
Yes |
LineData Values
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| x |
X 轴数据 |
number |
No |
iOS/Android |
Yes |
| y |
Y 轴数据 |
number |
Yes |
iOS/Android |
Yes |
ScatterChart
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| data |
散点图数据 |
ScatterData |
Yes |
iOS/Android |
Yes |
ScatterData Config
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| common |
公共数据数据 |
Data Config Type.Common |
No |
iOS/Android |
Yes |
| barLineScatterCandleBubble |
柱状图、条形图、散点图、气泡图、烛台图的公共基础数据 |
Data Config Type.CommonConfigType.barLineScatterCandleBubble |
No |
iOS/Android |
Yes |
| lineScatterCandleRadar |
柱状图、烛台图、散点图、雷达图的公共基础数据 |
Data Config Type.CommonConfigType.lineScatterCandleRadar |
No |
iOS/Android |
Yes |
| scatterShapeSize |
设置绘制的scattershape将具有的大小 |
number |
No |
iOS/Android |
Yes |
| scatterShape |
设置绘制此DataSet时应使用的散点形状 |
string |
No |
iOS/Android |
Yes |
| scatterShapeHoleColor |
设置形状中孔的颜色 |
number |
No |
iOS/Android |
Yes |
| scatterShapeHoleRadius |
设置形状中孔的半径(适用于正方形、圆形和三角形) |
number |
No |
iOS/Android |
Yes |
ScatterData Values
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| x |
X 轴数据 |
number |
No |
iOS/Android |
Yes |
| y |
Y 轴数据 |
number |
Yes |
iOS/Android |
Yes |
PieChart
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| extraOffsets |
图数据 |
object |
No |
iOS/Android |
Yes |
| drawEntryLabels |
将此属性设置为 true 可将条目标签绘制到饼图扇区中 |
bool |
No |
iOS/Android |
Yes |
| usePercentValues |
如果启用此选项,则 PieChart 中的值将以百分比显示 |
bool |
No |
iOS/Android |
Yes |
| centerText |
设置显示在 PieChart 中心的文本字符串。 |
string |
No |
iOS/Android |
Yes |
| styledCenterText |
设置显示在 PieChart 中心的文本字符串的样式 |
object |
No |
iOS/Android |
Yes |
| centerTextRadiusPercent |
中心文本边界框的矩形半径,以饼图的百分比表示 |
number |
No |
iOS/Android |
Yes |
| holeRadius |
设置饼图中心孔的半径,以百分比为单位 *最大半径(max=整个图表的半径),默认为 50% |
number |
No |
iOS/Android |
Yes |
| holeColor |
设置在饼图中心绘制的孔的颜色 |
number |
No |
iOS/Android |
Yes |
| transparentCircleRadius |
设置在孔旁边绘制的透明圆的半径 |
number |
No |
iOS/Android |
Yes |
| transparentCircleColor |
设置在孔旁边绘制的透明圆的颜色 |
number |
No |
iOS/Android |
Yes |
| entryLabelColor |
设置绘制条目标签的颜色 |
number |
No |
iOS/Android |
Yes |
| entryLabelTextSize |
以 vp 为单位设置条目标签的大小。 |
number |
No |
iOS/Android |
Yes |
| entryLabelFontFamily |
为条目标签的绘制设置自定义字体 |
string |
No |
iOS/Android |
Yes |
| maxAngle |
设置用于计算饼图圆的最大角度 |
number |
No |
iOS/Android |
Yes |
| data |
饼图数据 |
PieData |
Yes |
iOS/Android |
Yes |
PieData Config
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| common |
公共数据数据 |
Data Config Type.Common |
No |
iOS/Android |
Yes |
| PieRadarChartBase |
饼图、雷达图数据 |
Data Config Type.PieRadarChartBase |
No |
iOS/Android |
Yes |
| sliceSpace |
设置在 vp 中的饼图切片之间留出的空间。 |
number |
No |
iOS/Android |
Yes |
| selectionShift |
设置此数据集的突出显示饼图扇区的距离 |
number |
No |
iOS/Android |
Yes |
| xValuePosition |
标签显示在饼图里面还是外面 |
string |
No |
iOS/Android |
Yes |
| yValuePosition |
标签显示在饼图里面还是外面 |
string |
No |
iOS/Android |
Yes |
PieData Values
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| value |
数据 |
number |
Yes |
iOS/Android |
Yes |
| label |
标签 |
string |
No |
iOS/Android |
Yes |
RadarChart
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| yAxis |
Y 轴 |
YAxis |
No |
iOS/Android |
Yes |
| drawWeb |
饼图、雷达图数据 |
bool |
No |
iOS/Android |
Yes |
| skipWebLineCount |
设置在执行以下操作之前应在图表 Web 上跳过的 Web 行数 |
number |
No |
iOS/Android |
Yes |
| webLineWidth |
设置来自中心的腹板线的宽度 |
number |
No |
iOS/Android |
Yes |
| webLineWidthInner |
设置 Web 线的宽度,这些 Web 线位于来自 *中心。 |
number |
No |
iOS/Android |
Yes |
| webAlpha |
设置所有 Web 线的透明度(alpha)值 |
number |
No |
iOS/Android |
Yes |
| webColor |
设置来自中心的腹板线的颜色。 |
number |
No |
iOS/Android |
Yes |
| webColorInner |
设置 Web 线之间的颜色,这些线来自*中心。 |
number |
No |
iOS/Android |
Yes |
| data |
雷达图数据 |
RadarData |
Yes |
iOS/Android |
Yes |
RadarData Config
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| common |
公共数据数据 |
Data Config Type.Common |
No |
iOS/Android |
Yes |
| lineScatterCandleRadar |
柱状图、烛台图、散点图、雷达图的公共基础数据 |
Data Config Type.CommonConfigType.lineScatterCandleRadar |
No |
iOS/Android |
Yes |
| lineRadar |
折线图、雷达图公共数据 |
Data Config Type.lineRadar |
No |
iOS/Android |
Yes |
RadarData Values
| Name |
Description |
Type |
Required |
Platform |
HarmonyOS Support |
| value |
数据 |
number |
Yes |
iOS/Android |
Yes |
6. 遗留问题
7. 其他
- 图例的maxSizePercent最大百分比属性在Android和iOS不生效, HarmonyOS与Android,iOS表现一致。原库 issue
- 图例的custom属性,设置后会覆盖原有的图例,但自定义图例也不显示在Android和iOS中,属性不生效, HarmonyOS与Android,iOS表现一致。原库 issue
- logEnabled 会开启安卓特有的日志logcat和 highlights属性在Android和iOS不生效, HarmonyOS与Android,iOS表现一致。原库 issue
- stackLabels 堆叠条形图设置无效果和 drawCubicIntensity 曲线角度属性在Android和iOS不生效, HarmonyOS与Android,iOS表现一致。原库 issue
- 在Android和iOS visibleRange 最大大小百分比限制通过缩放和缩放可以看到的最大和最小x范围不起作用, HarmonyOS与Android,iOS表现一致。原库 issue
- keepPositionOnRotation旋转后保持图表原始位置属性在Android和iOS不生效, HarmonyOS与Android,iOS表现一致。原库 issue
- valueFormatter格式化数据属性在Android和iOS不生效, HarmonyOS与Android,iOS表现一致。原库 issue
- chartBackgroundColor图表背景颜色在原库中不生效,在原库中网格背景颜色与图表背景颜色设置的内容一样,则已不支持图表背景 HarmonyOS与Android,iOS表现一致。原库 issue
- Legend中的text与data中label效果相同,原库中已不支持该属性。HarmonyOS与Android,ios表现一致。原库 issue
8. 开源协议
本项目基于 The MIT License (MIT) ,请自由地享受和参与开源。