Browse Source

Major update:

- Chart is now a library module
- Update to gradle.kts
- Update to AndroidX
- Ready for JitPack
GuilhE 4 years ago
parent
commit
d72ae2479d
100 changed files with 6673 additions and 5435 deletions
  1. 179 91
      .gitignore
  2. 3 1
      .idea/encodings.xml
  3. 0 11
      .idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
  4. 0 11
      .idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
  5. 0 9
      .idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
  6. 0 9
      .idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
  7. 0 9
      .idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
  8. 0 9
      .idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
  9. 0 12
      .idea/runConfigurations.xml
  10. 0 19
      AAChartCore-Kotlin.iml
  11. 0 19
      AAInfographics.iml
  12. 0 1
      app/.gitignore
  13. 0 35
      app/build.gradle
  14. 0 24
      app/src/androidTest/java/com/aachartmodel/aainfographics/ExampleInstrumentedTest.kt
  15. 0 32
      app/src/main/AndroidManifest.xml
  16. 0 40
      app/src/main/assets/AAChartView.html
  17. 0 93
      app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/AdditionalContent/DrawChartWithAAOptionsActivity.kt
  18. 0 1231
      app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/ChartOptionsComposer.kt
  19. 0 422
      app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/CustomStyleChartComposer.kt
  20. 0 793
      app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/CustomTooltipComposer.kt
  21. 0 741
      app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/MixedChartComposer.kt
  22. 0 987
      app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/SpecialChartComposer.kt
  23. 0 34
      app/src/main/res/drawable-v24/ic_launcher_foreground.xml
  24. 0 74
      app/src/main/res/drawable/ic_launcher_background.xml
  25. 0 17
      app/src/main/res/layout/activity_custom_style_chart.xml
  26. 0 17
      app/src/main/res/layout/activity_custom_tooltip_with_jsfunction.xml
  27. 0 41
      app/src/main/res/layout/activity_double_charts_linked_work.xml
  28. 0 16
      app/src/main/res/layout/activity_draw_chart_with_aaoptions.xml
  29. 0 19
      app/src/main/res/layout/activity_evaluate_jsstring_function.xml
  30. 0 18
      app/src/main/res/layout/activity_hide_or_show_chart_series.xml
  31. 0 17
      app/src/main/res/layout/activity_main.xml
  32. 0 17
      app/src/main/res/layout/activity_mixed_chart.xml
  33. 0 16
      app/src/main/res/layout/activity_only_refresh_chart_data.xml
  34. 0 9
      app/src/main/res/layout/activity_scrolling_update_data.xml
  35. 0 17
      app/src/main/res/layout/activity_special_chart.xml
  36. 0 17
      app/src/test/java/com/aachartmodel/aainfographics/ExampleUnitTest.kt
  37. 44 0
      build.gradle.kts
  38. 6 0
      buildSrc/build.gradle.kts
  39. 37 0
      buildSrc/src/main/java/Constants.kt
  40. 85 0
      charts/build.gradle.kts
  41. 1 0
      charts/src/main/AndroidManifest.xml
  42. 40 0
      charts/src/main/assets/AAChartView.html
  43. 0 0
      charts/src/main/assets/AAChartView.js
  44. 0 0
      charts/src/main/assets/AAEasing.js
  45. 0 0
      charts/src/main/assets/AAFunnel.js
  46. 0 0
      charts/src/main/assets/AAHighchartsLib.js
  47. 0 0
      charts/src/main/assets/AAHighchartsMore.js
  48. 127 128
      charts/src/main/java/com/github/aachartmodel/aainfographics/aachartcreator/AAChartModel.kt
  49. 34 33
      charts/src/main/java/com/github/aachartmodel/aainfographics/aachartcreator/AAChartView.kt
  50. 23 20
      charts/src/main/java/com/github/aachartmodel/aainfographics/aachartcreator/AAOptionsConstructor.kt
  51. 4 6
      charts/src/main/java/com/github/aachartmodel/aainfographics/aachartcreator/AASeriesElement.kt
  52. 2 2
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAAnimation.kt
  53. 5 4
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAChart.kt
  54. 9 10
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AACrosshair.kt
  55. 3 3
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AADataLabels.kt
  56. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AALabel.kt
  57. 18 18
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AALabels.kt
  58. 10 3
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AALang.kt
  59. 5 5
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AALegend.kt
  60. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAMarker.kt
  61. 3 4
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAOptions.kt
  62. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAPane.kt
  63. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAPlotBandsElement.kt
  64. 2 2
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAPlotLinesElement.kt
  65. 4 5
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAPlotOptions.kt
  66. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAScrollablePlotArea.kt
  67. 4 6
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AASeries.kt
  68. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAShadow.kt
  69. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAStates.kt
  70. 2 2
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAStyle.kt
  71. 3 3
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AASubtitle.kt
  72. 3 3
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AATitle.kt
  73. 2 2
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AATooltip.kt
  74. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAWaterfall.kt
  75. 5 3
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAXAxis.kt
  76. 28 27
      charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAYAxis.kt
  77. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aatools/AAColor.kt
  78. 36 37
      charts/src/main/java/com/github/aachartmodel/aainfographics/aatools/AAGradientColor.kt
  79. 1 1
      charts/src/main/java/com/github/aachartmodel/aainfographics/aatools/AAJSStringPurer.kt
  80. 6 0
      gradle.properties
  81. 2 2
      gradle/wrapper/gradle-wrapper.properties
  82. 38 0
      sample/build.gradle
  83. 2 0
      sample/proguard-rules.pro
  84. 34 0
      sample/src/main/AndroidManifest.xml
  85. 42 14
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/DoubleChartsLinkedWorkActivity.kt
  86. 94 0
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/DrawChartWithAAOptionsActivity.kt
  87. 4 3
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/EvaluateJSStringFunctionActivity.kt
  88. 4 3
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/HideOrShowChartSeriesActivity.kt
  89. 21 20
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/JSFormatterFunctionActivity.kt
  90. 20 17
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/OnlyRefreshChartDataActivity.kt
  91. 5 4
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/ScrollingUpdateDataActivity.kt
  92. 255 36
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/CommonChartActivity.kt
  93. 26 25
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/CustomStyleChartActivity.kt
  94. 10 17
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/MainActivity.kt
  95. 8 7
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/MixedChartActivity.kt
  96. 24 23
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/SpecialChartActivity.kt
  97. 1984 0
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/chartcomposer/ChartOptionsComposer.kt
  98. 747 0
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/chartcomposer/CustomStyleChartComposer.kt
  99. 1315 0
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/chartcomposer/CustomTooltipComposer.kt
  100. 1295 0
      sample/src/main/java/com/github/aachartmodel/aainfographics/demo/chartcomposer/MixedChartComposer.kt

+ 179 - 91
.gitignore

@@ -1,91 +1,179 @@
-.gradle/5.1.1/executionHistory/executionHistory.bin
-.gradle/5.1.1/executionHistory/executionHistory.lock
-.gradle/5.1.1/fileHashes/fileHashes.bin
-.gradle/5.1.1/fileHashes/fileHashes.lock
-.gradle/5.1.1/fileHashes/resourceHashesCache.bin
-.gradle/5.1.1/javaCompile/classAnalysis.bin
-.gradle/5.1.1/javaCompile/jarAnalysis.bin
-.gradle/5.1.1/javaCompile/javaCompile.lock
-.gradle/5.1.1/javaCompile/taskHistory.bin
-.gradle/buildOutputCleanup/buildOutputCleanup.lock
-app/app.iml
-app/build.gradle
-.gradle/5.4.1/executionHistory/executionHistory.bin
-.gradle/5.4.1/executionHistory/executionHistory.lock
-.gradle/5.4.1/fileChanges/last-build.bin
-.gradle/5.4.1/fileContent/fileContent.lock
-.gradle/5.4.1/fileHashes/fileHashes.bin
-.gradle/5.4.1/fileHashes/fileHashes.lock
-.gradle/5.4.1/fileHashes/resourceHashesCache.bin
-.gradle/5.4.1/javaCompile/classAnalysis.bin
-.gradle/5.4.1/javaCompile/jarAnalysis.bin
-.gradle/5.4.1/javaCompile/javaCompile.lock
-.gradle/5.4.1/javaCompile/taskHistory.bin
-.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml
-.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml
-.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml
-.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml
-.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml
-.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml
-.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml
-.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml
-.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml
-.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml
-.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml
-.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml
-.gradle/5.6.4/executionHistory/executionHistory.bin
-.gradle/5.6.4/executionHistory/executionHistory.lock
-.gradle/5.6.4/fileChanges/last-build.bin
-.gradle/5.6.4/fileContent/fileContent.lock
-.gradle/5.6.4/fileHashes/fileHashes.lock
-.gradle/5.6.4/fileHashes/resourceHashesCache.bin
-.gradle/5.6.4/javaCompile/classAnalysis.bin
-.gradle/5.6.4/javaCompile/jarAnalysis.bin
-.gradle/5.6.4/javaCompile/javaCompile.lock
-.idea/AAChartCore-Kotlin.iml
-.idea/gradle.xml
-.gradle/6.1.1/executionHistory/executionHistory.lock
-.gradle/6.1.1/fileChanges/last-build.bin
-.gradle/6.1.1/fileHashes/fileHashes.lock
-.gradle/checksums/checksums.lock
-.gradle/checksums/md5-checksums.bin
-.gradle/checksums/sha1-checksums.bin
-.idea/jarRepositories.xml
-build.gradle
-.idea/libraries/Gradle__com_google_code_gson_gson_2_8_5_jar.xml
-.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
-.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
-.idea/libraries/Gradle__junit_junit_4_12_jar.xml
-.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
-.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
-.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
-.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
-.idea/libraries/Gradle__org_jetbrains_annotations_13_0_jar.xml
-.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_31_jar.xml
-.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_31_jar.xml
-.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_31_jar.xml
-.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_31_jar.xml
-.gradle/6.1.1/executionHistory/executionHistory.bin
-.gradle/6.1.1/fileContent/fileContent.lock
-.gradle/6.1.1/fileHashes/resourceHashesCache.bin
-.gradle/6.1.1/javaCompile/classAnalysis.bin
-.gradle/6.1.1/javaCompile/jarAnalysis.bin
-.gradle/6.1.1/javaCompile/javaCompile.lock
+
+# Created by https://www.gitignore.io/api/java,android,osx,intellij,gradle
+
+### Android ###
+# Built application files
+*.apk
+*.ap_
+
+# Files for the ART/Dalvik VM
+*.dex
+
+# Java class files
+*.class
+
+# Generated files
+bin/
+gen/
+out/
+
+# Gradle files
+.gradle/
+build/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Proguard folder generated by Eclipse
+proguard/
+
+# Log Files
+*.log
+
+# Android Studio Navigation editor temp files
+.navigation/
+
+# Android Studio captures folder
+captures/
+
+# Intellij
+*.iml
+.idea/
+
+# Keystore files
+#*.jks
+
+# External native build folder generated in Android Studio 2.2 and later
+.externalNativeBuild
+
+# Google Services (e.g. APIs or Firebase)
+#google-services.json
+
+# Freeline
+freeline.py
+freeline/
+freeline_project_description.json
+
+### Android Patch ###
+gen-external-apklibs
+
+### Intellij ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff:
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+
+# Sensitive or high-churn files:
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.xml
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+
+# Gradle:
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Mongo Explorer plugin:
+.idea/**/mongoSettings.xml
+
+## File-based project format:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+### Intellij Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+### Java ###
+# Compiled class file
+
+# Log file
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+### OSX ###
+*.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### Gradle ###
+.gradle
+/build/
+
+# Ignore Gradle GUI config
+gradle-app.setting
+
+# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
+!gradle-wrapper.jar
+
+# Cache of project
+.gradletasknamecache
+
+# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
+# gradle/wrapper/gradle-wrapper.properties
+
+# End of https://www.gitignore.io/api/java,android,osx,intellij,gradle
+/app/build/

+ 3 - 1
.idea/encodings.xml

@@ -1,4 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
-  <component name="Encoding" addBOMForNewFiles="with NO BOM" />
+  <component name="Encoding">
+    <file url="PROJECT" charset="UTF-8" />
+  </component>
 </project>

+ 0 - 11
.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml

@@ -1,11 +0,0 @@
-<component name="libraryTable">
-  <library name="Gradle: android.arch.core:common:1.1.1@jar">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/e55b70d1f5620db124b3e85a7f4bdc7bd48d9f95/common-1.1.1.jar!/" />
-    </CLASSES>
-    <JAVADOC />
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/ae9b923fc99c1fc5a7a9b6cedc6df8b2b8529c54/common-1.1.1-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>

+ 0 - 11
.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml

@@ -1,11 +0,0 @@
-<component name="libraryTable">
-  <library name="Gradle: android.arch.lifecycle:common:1.1.1@jar">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/207a6efae6a3555e326de41f76bdadd9a239cbce/common-1.1.1.jar!/" />
-    </CLASSES>
-    <JAVADOC />
-    <SOURCES>
-      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/bcdaa509a856d1430e736b102f899aa9870a8f83/common-1.1.1-sources.jar!/" />
-    </SOURCES>
-  </library>
-</component>

+ 0 - 9
.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml

@@ -1,9 +0,0 @@
-<component name="libraryTable">
-  <library name="Gradle: com.android.support:collections:28.0.0@jar">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support/collections/28.0.0/c1bcdade4d3cc2836130424a3f3e4182c666a745/collections-28.0.0.jar!/" />
-    </CLASSES>
-    <JAVADOC />
-    <SOURCES />
-  </library>
-</component>

+ 0 - 9
.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml

@@ -1,9 +0,0 @@
-<component name="libraryTable">
-  <library name="Gradle: com.android.support.constraint:constraint-layout-solver:1.1.3@jar">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support.constraint/constraint-layout-solver/1.1.3/bde0667d7414c16ed62d3cfe993cff7f9d732373/constraint-layout-solver-1.1.3.jar!/" />
-    </CLASSES>
-    <JAVADOC />
-    <SOURCES />
-  </library>
-</component>

+ 0 - 9
.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml

@@ -1,9 +0,0 @@
-<component name="libraryTable">
-  <library name="Gradle: com.android.support:support-annotations:28.0.0@jar">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/28.0.0/ed73f5337a002d1fd24339d5fb08c2c9d9ca60d8/support-annotations-28.0.0.jar!/" />
-    </CLASSES>
-    <JAVADOC />
-    <SOURCES />
-  </library>
-</component>

+ 0 - 9
.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml

@@ -1,9 +0,0 @@
-<component name="libraryTable">
-  <library name="Gradle: com.google.code.findbugs:jsr305:2.0.1@jar">
-    <CLASSES>
-      <root url="jar://$PROJECT_DIR$/../.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/2.0.1/516c03b21d50a644d538de0f0369c620989cd8f0/jsr305-2.0.1.jar!/" />
-    </CLASSES>
-    <JAVADOC />
-    <SOURCES />
-  </library>
-</component>

+ 0 - 12
.idea/runConfigurations.xml

@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="RunConfigurationProducerService">
-    <option name="ignoredProducers">
-      <set>
-        <option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
-        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
-        <option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
-      </set>
-    </option>
-  </component>
-</project>

+ 0 - 19
AAChartCore-Kotlin.iml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id="AAChartCore-Kotlin" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="java-gradle" name="Java-Gradle">
-      <configuration>
-        <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
-        <option name="BUILDABLE" value="false" />
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
-    <exclude-output />
-    <content url="file://$MODULE_DIR$">
-      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
-    </content>
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>

+ 0 - 19
AAInfographics.iml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id="AAInfographics" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" type="JAVA_MODULE" version="4">
-  <component name="FacetManager">
-    <facet type="java-gradle" name="Java-Gradle">
-      <configuration>
-        <option name="BUILD_FOLDER_PATH" value="$MODULE_DIR$/build" />
-        <option name="BUILDABLE" value="false" />
-      </configuration>
-    </facet>
-  </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="true">
-    <exclude-output />
-    <content url="file://$MODULE_DIR$">
-      <excludeFolder url="file://$MODULE_DIR$/.gradle" />
-    </content>
-    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>

+ 0 - 1
app/.gitignore

@@ -1 +0,0 @@
-/build

+ 0 - 35
app/build.gradle

@@ -1,35 +0,0 @@
-apply plugin: 'com.android.application'
-
-apply plugin: 'kotlin-android'
-
-apply plugin: 'kotlin-android-extensions'
-
-android {
-    compileSdkVersion 28
-    defaultConfig {
-        applicationId "com.aachartmodel.aainfographics"
-        minSdkVersion 15
-        targetSdkVersion 28
-        versionCode 1
-        versionName "1.0"
-        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
-    }
-    buildTypes {
-        release {
-            minifyEnabled false
-            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
-        }
-    }
-}
-
-dependencies {
-    implementation fileTree(dir: 'libs', include: ['*.jar'])
-    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
-    implementation 'com.android.support:appcompat-v7:28.0.0'
-    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
-    implementation 'com.google.code.gson:gson:2.8.5'
-
-    testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'com.android.support.test:runner:1.0.2'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
-}

+ 0 - 24
app/src/androidTest/java/com/aachartmodel/aainfographics/ExampleInstrumentedTest.kt

@@ -1,24 +0,0 @@
-package com.aachartmodel.aainfographics
-
-import android.support.test.InstrumentationRegistry
-import android.support.test.runner.AndroidJUnit4
-
-import org.junit.Test
-import org.junit.runner.RunWith
-
-import org.junit.Assert.*
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
-    @Test
-    fun useAppContext() {
-        // Context of the app under test.
-        val appContext = InstrumentationRegistry.getTargetContext()
-        assertEquals("com.aachartmodel.aainfographics", appContext.packageName)
-    }
-}

+ 0 - 32
app/src/main/AndroidManifest.xml

@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        package="com.aachartmodel.aainfographics">
-
-    <application
-            android:allowBackup="true"
-            android:icon="@mipmap/ic_launcher"
-            android:label="@string/app_name"
-            android:roundIcon="@mipmap/ic_launcher_round"
-            android:supportsRtl="true"
-            android:theme="@style/AppTheme">
-        <activity android:name=".ChartsDemo.AdditionalContent.ScrollingUpdateDataActivity"></activity>
-        <activity android:name=".MainActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-        <activity android:name=".ChartsDemo.BasicContent.SpecialChartActivity" />
-        <activity android:name=".ChartsDemo.BasicContent.CustomStyleChartActivity" />
-        <activity android:name=".ChartsDemo.BasicContent.MixedChartActivity" />
-        <activity android:name=".ChartsDemo.BasicContent.CommonChartActivity" />
-        <activity android:name=".ChartsDemo.AdditionalContent.JSFormatterFunctionActivity" />
-        <activity android:name=".ChartsDemo.AdditionalContent.DrawChartWithAAOptionsActivity" />
-        <activity android:name=".ChartsDemo.AdditionalContent.EvaluateJSStringFunctionActivity" />
-        <activity android:name=".ChartsDemo.AdditionalContent.HideOrShowChartSeriesActivity" />
-        <activity android:name=".ChartsDemo.AdditionalContent.OnlyRefreshChartDataActivity" />
-        <activity android:name=".ChartsDemo.AdditionalContent.DoubleChartsLinkedWorkActivity" />
-    </application>
-
-</manifest>

+ 0 - 40
app/src/main/assets/AAChartView.html

@@ -1,40 +0,0 @@
-
-
-
-<html>
-    <head>
-        <meta charset="UTF-8" />
-        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=3.0,user-scalable = no">
-            <title>AAChartKit-Swift</title>
-
-        <script src="AAHighchartsLib.js">
-        </script>
-        <script src="AAHighchartsMore.js">
-        </script>
-        <script src="AAFunnel.js">
-        </script>
-        <script src="AAEasing.js">
-        </script>
-        <script src="AAChartView.js" >
-        </script>
-                        <!--<script src = "https://img.hcharts.cn/highcharts/themes/dark-unica.js">-->
-                            <!--</script>-->
-
-                <!--&lt;!&ndash;若介意本地js代码体积(250KB左右)过大,可换用加载网络js代码 &ndash;&gt;-->
-                        <!--<script src="https://img.hcharts.cn/highcharts/highcharts.js">-->
-                            <!--</script>-->
-                        <!--<script src="https://img.hcharts.cn/highcharts/highcharts-more.js">-->
-                            <!--</script>-->
-
-            <style>
-                *{
-                    -webkit-user-select: none;
-                    user-select: none;
-                }
-            </style>
-            </head>
-    <body style="margin:0px 0px 0px 0px;">
-    <div id="container" style="width:100%; height: 100%;"></div>
-        </div>
-    </body>
-</html>

+ 0 - 93
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/AdditionalContent/DrawChartWithAAOptionsActivity.kt

@@ -1,93 +0,0 @@
-/**
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- */
-
-/**
-
- * -------------------------------------------------------------------------------
- *
- *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
- *
- * Please contact me on GitHub,if there are any problems encountered in use.
- * GitHub Issues : https://github.com/AAChartModel/AAChartCore-Kotlin/issues
- * -------------------------------------------------------------------------------
- * And if you want to contribute for this project, please contact me as well
- * GitHub        : https://github.com/AAChartModel
- * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
- * JianShu       : http://www.jianshu.com/u/f1e6753d4254
- * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
- *
- * -------------------------------------------------------------------------------
-
- */
-package com.aachartmodel.aainfographics.ChartsDemo.AdditionalContent
-
-import android.support.v7.app.AppCompatActivity
-import android.os.Bundle
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAOptions
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.customChartLegendStyle
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureAAPlotBandsForChart
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureAAPlotLinesForChart
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureDoubleYAxesAndColumnLineMixedChart
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureDoubleYAxesMarketDepthChart
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureDoubleYAxisChartOptions
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureTheMirrorColumnChart
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureTripleYAxesMixedChart
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureXAxisLabelsFontColorAndFontSizeWithHTMLString
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureXAxisLabelsFontColorWithHTMLString
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configureXAxisPlotBand
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.configure_DataLabels_XAXis_YAxis_Legend_Style
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.customAATooltipWithJSFunction
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.customAreaChartTooltipStyleLikeHTMLTable
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.customLineChartDataLabelsFormat
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.customXAxisCrosshairStyle
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.gaugeChartWithPlotBand
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.ChartOptionsComposer.Companion.simpleGaugeChart
-import com.aachartmodel.aainfographics.R
-
-class DrawChartWithAAOptionsActivity : AppCompatActivity() {
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-        setContentView(R.layout.activity_draw_chart_with_aaoptions)
-
-        val intent = intent
-        val chartType = intent.getStringExtra("chartType")
-
-        val aaOptions = configureTheChartOptions(chartType)
-
-        val aaChartView: AAChartView = findViewById(R.id.AAChartView)
-        aaChartView.aa_drawChartWithChartOptions(aaOptions)
-
-    }
-
-    private fun configureTheChartOptions(chartType: String): AAOptions {
-        when (chartType) {
-            "customLegendStyle" -> return customChartLegendStyle()
-            "AAPlotBandsForChart" -> return configureAAPlotBandsForChart()
-            "AAPlotLinesForChart" -> return configureAAPlotLinesForChart()
-            "customAATooltipWithJSFuntion" -> return customAATooltipWithJSFunction()
-            "customXAxisCrosshairStyle" -> return customXAxisCrosshairStyle()
-            "XAxisLabelsFontColorWithHTMLString" -> return configureXAxisLabelsFontColorWithHTMLString()
-            "XAxisLabelsFontColorAndFontSizeWithHTMLString" -> return configureXAxisLabelsFontColorAndFontSizeWithHTMLString()
-            "_DataLabels_XAXis_YAxis_Legend_Style" -> return configure_DataLabels_XAXis_YAxis_Legend_Style()
-            "XAxisPlotBand" -> return configureXAxisPlotBand()
-            "configureTheMirrorColumnChart" -> return configureTheMirrorColumnChart()
-            "configureDoubleYAxisChartOptions" -> return configureDoubleYAxisChartOptions()
-            "configureTripleYAxesMixedChart" -> return configureTripleYAxesMixedChart()
-            "customLineChartDataLabelsFormat"-> return customLineChartDataLabelsFormat()
-            "configureDoubleYAxesAndColumnLineMixedChart"-> return configureDoubleYAxesAndColumnLineMixedChart()
-            "configureDoubleYAxesMarketDepthChart"-> return configureDoubleYAxesMarketDepthChart()
-            "customAreaChartTooltipStyleLikeHTMLTable"-> return customAreaChartTooltipStyleLikeHTMLTable()
-             "simpleGaugeChart" -> return simpleGaugeChart()
-             "gaugeChartWithPlotBand" -> return gaugeChartWithPlotBand()
-        }
-        return configureAAPlotBandsForChart()
-    }
-}

+ 0 - 1231
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/ChartOptionsComposer.kt

@@ -1,1231 +0,0 @@
-/**
- * Copyright (C), 2015-2019
- * FileName: ChartOptionsComposer
- * Author: ios-fn
- * Date: 2019-06-16 18:56
- * Description:
- * History:
- */
-/**
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- */
-
-/**
-
- * -------------------------------------------------------------------------------
- *
- *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
- *
- * Please contact me on GitHub,if there are any problems encountered in use.
- * GitHub Issues : https://github.com/AAChartModel/AAChartCore-Kotlin/issues
- * -------------------------------------------------------------------------------
- * And if you want to contribute for this project, please contact me as well
- * GitHub        : https://github.com/AAChartModel
- * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
- * JianShu       : http://www.jianshu.com/u/f1e6753d4254
- * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
- *
- * -------------------------------------------------------------------------------
-
- */
-package com.aachartmodel.aainfographics.ChartsDemo.ChartComposer
-
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.*
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.*
-
-class ChartOptionsComposer {
-    companion object {
-
-        fun customChartLegendStyle(): AAOptions {
-            val element1 = AASeriesElement()
-                .name("Predefined symbol")
-                .data(arrayOf(0.45, 0.43, 0.50, 0.55, 0.58, 0.62, 0.83, 0.39, 0.56, 0.67, 0.50, 0.34, 0.50, 0.67, 0.58, 0.29, 0.46, 0.23, 0.47, 0.46, 0.38, 0.56, 0.48, 0.36))
-
-            val element2 = AASeriesElement()
-                .name("Image symbol")
-                .data(arrayOf(0.38, 0.31, 0.32, 0.32, 0.64, 0.66, 0.86, 0.47, 0.52, 0.75, 0.52, 0.56, 0.54, 0.60, 0.46, 0.63, 0.54, 0.51, 0.58, 0.64, 0.60, 0.45, 0.36, 0.67))
-
-            val element3 = AASeriesElement()
-                .name("Base64 symbol (*)")
-                .data(arrayOf(0.46, 0.32, 0.53, 0.58, 0.86, 0.68, 0.85, 0.73, 0.69, 0.71, 0.91, 0.74, 0.60, 0.50, 0.39, 0.67, 0.55, 0.49, 0.65, 0.45, 0.64, 0.47, 0.63, 0.64))
-
-            val element4 = AASeriesElement()
-                .name("Custom symbol")
-                .data(arrayOf(0.60, 0.51, 0.52, 0.53, 0.64, 0.84, 0.65, 0.68, 0.63, 0.47, 0.72, 0.60, 0.65, 0.74, 0.66, 0.65, 0.71, 0.59, 0.65, 0.77, 0.52, 0.53, 0.58, 0.53))
-
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Areaspline)
-                .title("CUSTOM LEGEND STYLE")
-                .subtitle("LEGEND ON THE TOP_RIGHT SIDE WITH VERTICAL STYLE")
-                .subtitleAlign(AAChartAlignType.Left)
-                .markerRadius(0f)
-                .backgroundColor(AAColor.whiteColor())
-                .dataLabelsEnabled(false)
-                .yAxisGridLineWidth(0f)
-                .yAxisTitle("percent values")
-                .stacking(AAChartStackingType.Normal)
-                .colorsTheme(arrayOf("mediumspringgreen", "deepskyblue", "red", "sandybrown"))
-                .series(arrayOf(element1, element2, element3, element4))
-
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-
-            aaOptions.legend!!
-                .enabled(true)
-                .verticalAlign(AAChartVerticalAlignType.Top)
-                .layout(AAChartLayoutType.Vertical)
-                .align(AAChartAlignType.Right)
-
-            aaOptions.yAxis?.labels?.format = "{value} %"//给y轴添加单位
-
-            aaOptions.defaultOptions = AALang()
-                .resetZoom("重置缩放比例")
-                .thousandsSep(",")
-
-            return aaOptions
-        }
-
-
-        fun configureAAPlotBandsForChart(): AAOptions {
-        val aaChartModel = AAChartModel()
-            .chartType(AAChartType.Spline)//图形类型
-            .dataLabelsEnabled(false)
-            .markerRadius(0f)
-            .series(arrayOf(
-                    AASeriesElement()
-                        .name("Tokyo")
-                        .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
-                        .color(AAColor.whiteColor())
-                        .lineWidth(10.0f)
-                )
-            )
-
-        val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-        val aaPlotBandsElementArr = arrayOf(
-            AAPlotBandsElement()
-                .from(0f)
-                .to(5f)
-                .color("#BC2B44"),
-            AAPlotBandsElement()
-                .from(5f)
-                .to(10f)
-                .color("#EC6444"),
-            AAPlotBandsElement()
-                .from(10f)
-                .to(15f)
-                .color("#f19742"),
-            AAPlotBandsElement()
-                .from(15f)
-                .to(20f)
-                .color("#f3da60"),
-            AAPlotBandsElement()
-                .from(20f)
-                .to(25f)
-                .color("#9bd040"),
-            AAPlotBandsElement()
-                .from(25f)
-                .to(50f)
-                .color("#acf08f")
-        )
-
-         aaOptions.yAxis?.plotBands(aaPlotBandsElementArr)
-        return aaOptions
-    }
-
-     fun configureAAPlotLinesForChart(): AAOptions {
-        val zonesArr:Array<Any> = arrayOf(
-            mapOf(
-                "value" to 12,
-                "color" to "#1e90ff"
-            ),
-            mapOf(
-                "value" to 24,
-                "color" to "#ef476f"
-            ),
-            mapOf(
-                "value" to 36,
-                "color" to "#04d69f"
-            ),
-            mapOf(
-                "color" to "#ffd066"
-            )
-            )
-
-        val aaChartModel = AAChartModel()
-            .chartType(AAChartType.Areaspline)//图形类型
-            .dataLabelsEnabled(false)
-            .series(arrayOf(
-                    AASeriesElement()
-                        .name("Tokyo")
-                        .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
-                        .fillOpacity(0.5f)
-                        .lineWidth(10f)
-                        .zones(zonesArr)
-                )
-            )
-
-        val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-        val aaPlotLinesElementsArr = arrayOf(
-            AAPlotLinesElement()
-                .color("#1e90ff")//颜色值(16进制)
-                .dashStyle(AAChartLineDashStyleType.LongDashDotDot)//样式:Dash,Dot,Solid等,默认Solid
-                .width(1f) //标示线粗细
-                .value(12f) //所在位置
-                .zIndex(1) //层叠,标示线在图表中显示的层叠级别,值越大,显示越向前
-                .label(AALabel()
-                        .text("PLOT LINES ONE")
-                        .style(AAStyle()
-                                .color("#1e90ff")
-                                .fontWeight(AAChartFontWeightType.Bold)
-                        )
-                ),
-            AAPlotLinesElement()
-                .color("#ef476f")//颜色值(16进制)
-                .dashStyle(AAChartLineDashStyleType.LongDashDot)//样式:Dash,Dot,Solid等,默认Solid
-                .width(1f) //标示线粗细
-                .value(24f) //所在位置
-                .zIndex(1) //层叠,标示线在图表中显示的层叠级别,值越大,显示越向前
-                .label(AALabel()
-                        .text("PLOT LINES TWO")
-                        .style(AAStyle()
-                                .color("#ef476f")
-                                .fontWeight(AAChartFontWeightType.Bold)
-                        )
-                ),
-            AAPlotLinesElement()
-                .color("#1e90ff")//颜色值(16进制)
-                .dashStyle(AAChartLineDashStyleType.LongDash)//样式:Dash,Dot,Solid等,默认Solid
-                .width(1f) //标示线粗细
-                .value(36f) //所在位置
-                .zIndex(1) //层叠,标示线在图表中显示的层叠级别,值越大,显示越向前
-                .label(AALabel()
-                        .text("PLOT LINES THREE")
-                        .style(AAStyle()
-                                .color("#04d69f")
-                                .fontWeight(AAChartFontWeightType.Bold)
-                        )
-                )
-        )
-         aaOptions.yAxis?.plotLines(aaPlotLinesElementsArr)
-
-         return aaOptions
-    }
-
-     fun customAATooltipWithJSFunction(): AAOptions {
-        val aaChartModel = AAChartModel()
-            .chartType(AAChartType.Area)//图形类型
-            .title("近三个月金价起伏周期图")//图表主标题
-            .subtitle("金价(元/克)")//图表副标题
-            .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
-            .dataLabelsEnabled(false)
-            .categories(arrayOf(
-                "10-01", "10-02", "10-03", "10-04", "10-05", "10-06", "10-07", "10-08", "10-09", "10-10",
-                "10-11", "10-12", "10-13", "10-14", "10-15", "10-16", "10-17", "10-18", "10-19", "10-20",
-                "10-21", "10-22", "10-23", "10-024", "10-25", "10-26", "10-27", "10-28", "10-29", "10-30",
-                "10-31", "11-01", "11-02", "11-03", "11-04", "11-05", "11-06", "11-07", "11-08", "11-09",
-                "11-10", "11-11", "11-12", "11-13", "11-14", "11-15", "11-16", "11-17", "11-18", "11-19",
-                "11-20", "11-21", "11-22", "11-23", "11-024", "11-25", "11-26", "11-27", "11-28", "11-29",
-                "11-30", "12-01", "12-02", "12-03", "12-04", "12-05", "12-06", "12-07", "12-08", "12-09",
-                "12-10", "12-11", "12-12", "12-13", "12-14", "12-15", "12-16", "12-17", "12-18", "12-19",
-                "12-20", "12-21", "12-22", "12-23", "12-024", "12-25", "12-26", "12-27", "12-28", "12-29", "12-30"))
-            .series(arrayOf(
-                AASeriesElement()
-                .name("2020")
-                .lineWidth(3f)
-                .color("#FFD700"/*纯金色*/)
-                .fillOpacity(0.5f)
-                .data(arrayOf(
-                    1.51, 6.7, 0.94, 1.44, 1.6, 1.63, 1.56, 1.91, 2.45, 3.87, 3.24, 4.90, 4.61, 4.10, 4.17, 3.85,
-                    4.17, 3.46, 3.46, 3.55, 3.50, 4.13, 2.58, 2.28, 1.51, 12.7, 0.94, 1.44, 18.6, 1.63, 1.56, 1.91,
-                    2.45, 3.87, 3.24, 4.90, 4.61, 4.10, 4.17, 3.85, 4.17, 3.46, 3.46, 3.55, 3.50, 4.13, 2.58, 2.28,
-                    1.33, 4.68, 1.31, 1.10, 13.9, 1.10, 1.16, 1.67, 2.64, 2.86, 3.00, 3.21, 4.14, 4.07, 3.68, 3.11,
-                    3.41, 3.25, 3.32, 3.07, 3.92, 3.05, 2.18, 3.24, 3.23, 3.15, 2.90, 1.81, 2.11, 2.43, 5.59, 3.09,
-                    4.09, 6.14, 5.33, 6.05, 5.71, 6.22, 6.56, 4.75, 5.27, 6.02, 5.48)
-                )))
-
-        val aaTooltip = AATooltip()
-            .useHTML(true)
-            .formatter("""
-function () {
-        return ' 🌕 🌖 🌗 🌘 🌑 🌒 🌓 🌔 <br/> '
-        + ' Support JavaScript Function Just Right Now !!! <br/> '
-        + ' The Gold Price For <b>2020 '
-        +  this.x
-        + ' </b> Is <b> '
-        +  this.y
-        + ' </b> Dollars ';
-        }
-""")
-            .valueDecimals(2)//设置取值精确到小数点后几位//设置取值精确到小数点后几位
-            .backgroundColor("#000000")
-            .borderColor("#000000")
-            .style(AAStyle()
-                .color("#FFD700")
-                .fontSize(12f)
-            )
-        val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-        aaOptions.tooltip = aaTooltip
-        return aaOptions
-    }
-
-     fun customXAxisCrosshairStyle(): AAOptions {
-        val aaChartModel = AAChartModel()
-            .chartType(AAChartType.Line)//图表类型
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("2020")
-                    .color(AAGradientColor.deepSeaColor())
-                    .data(arrayOf(
-                        arrayOf(12464064, 21.5),
-                        arrayOf(12464928, 22.1),
-                        arrayOf(12465792, 23.2),
-                        arrayOf(12466656, 23.8),
-                        arrayOf(12467520, 21.4),
-                        arrayOf(12468384, 21.3),
-                        arrayOf(12469248, 18.3),
-                        arrayOf(12470112, 15.4),
-                        arrayOf(12470976, 16.4),
-                        arrayOf(12471840, 17.7),
-                        arrayOf(12472704, 17.5),
-                        arrayOf(12473568, 17.6),
-                        arrayOf(12474432, 17.7),
-                        arrayOf(12475296, 16.8),
-                        arrayOf(12476160, 17.7),
-                        arrayOf(12477024, 16.3),
-                        arrayOf(12477888, 17.8),
-                        arrayOf(12478752, 18.1),
-                        arrayOf(12479616, 17.2),
-                        arrayOf(12480480, 14.4),
-                        arrayOf(12481344, 13.7),
-                        arrayOf(12482208, 15.7),
-                        arrayOf(12483072, 14.6),
-                        arrayOf(12483936, 15.3),
-                        arrayOf(12484800, 15.3),
-                        arrayOf(12485664, 15.8),
-                        arrayOf(12486528, 15.2),
-                        arrayOf(12487392, 14.8),
-                        arrayOf(12488256, 14.4),
-                        arrayOf(12489120, 15.5),
-                        arrayOf(12489984, 13.6)
-                    )
-                    )
-            )
-            )
-
-        val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-        val aaCrosshair = AACrosshair()
-            .color(AAColor.redColor())
-            .width(1f)
-            .dashStyle(AAChartLineDashStyleType.LongDashDotDot)
-         aaOptions.xAxis?.crosshair(aaCrosshair)
-        return aaOptions
-    }
-
-         fun configureXAxisLabelsFontColorWithHTMLString(): AAOptions {
-            val categories = arrayOf(
-                "<font color=\\\"#CC0066\\\">孤岛危机<\\/font>",
-                "<font color=\\\"#CC0033\\\">使命召唤<\\/font>",
-                "<font color=\\\"#FF0066\\\">荣誉勋章<\\/font>",
-                "<font color=\\\"##66FF99\\\">狙击精英<\\/font>",
-                "<font color=\\\"#00FF00\\\">神秘海域<\\/font>",
-                "<font color=\\\"#00CC00\\\">美国末日<\\/font>",
-                "<font color=\\\"#666FF\\\">巫师狂猎<\\/font>",
-                "<font color=\\\"#000CC\\\">死亡搁浅<\\/font>",
-                "<font color=\\\"#9933CC\\\">地狱边境<\\/font>",
-                "<font color=\\\"##FFCC99\\\">忍者之印<\\/font>",
-                "<font color=\\\"#FFCC00\\\">合金装备<\\/font>",
-                "<font color=\\\"#CC99090\\\">全战三国<\\/font>"
-            )
-
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Areaspline)
-                .title("")
-                .subtitle("")
-                .stacking(AAChartStackingType.Normal)
-                .categories(categories)
-                .dataLabelsEnabled(false)
-                .markerRadius(0f)
-                .series(arrayOf(
-                    AASeriesElement()
-                        .name("Berlin Hot")
-                        .color(AAGradientColor.mysticMauveColor())
-                        .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
-                )
-                )
-
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.xAxis?.labels?.useHTML(true)
-            return aaOptions
-        }
-
-         fun configureXAxisLabelsFontColorAndFontSizeWithHTMLString(): AAOptions {
-            val categories = arrayOf(
-                "<span style=\\\"color:#CC0066;font-weight:bold;font-size:10px\\\">使命召唤</span>",
-                "<span style=\\\"color:#CC0033;font-weight:bold;font-size:11px\\\">荣誉勋章</span>",
-                "<span style=\\\"color:#FF0066;font-weight:bold;font-size:12px\\\">狙击精英</span>",
-                "<span style=\\\"color:#66FF99;font-weight:bold;font-size:13px\\\">神秘海域</span>",
-                "<span style=\\\"color:#00FF00;font-weight:bold;font-size:14px\\\">美国末日</span>",
-                "<span style=\\\"color:#00CC00;font-weight:bold;font-size:15px\\\">巫师狂猎</span>",
-                "<span style=\\\"color:#666FF;font-weight:bold;font-size:15px\\\">孤岛危机</span>",
-                "<span style=\\\"color:#000CC;font-weight:bold;font-size:14px\\\">地狱边境</span>",
-                "<span style=\\\"color:#9933CC;font-weight:bold;font-size:13px\\\">忍者之印</span>",
-                "<span style=\\\"color:#FFCC99;font-weight:bold;font-size:12px\\\">合金装备</span>",
-                "<span style=\\\"color:#FFCC00;font-weight:bold;font-size:11px\\\">全战三国</span>",
-                "<span style=\\\"color:#CC99090;font-weight:bold;font-size:10px\\\">死亡搁浅</span>"
-            )
-
-             val aaChartModel = AAChartModel()
-                 .chartType(AAChartType.Areaspline)
-                 .title("")
-                 .subtitle("")
-                 .stacking(AAChartStackingType.Normal)
-                 .categories(categories)
-                 .dataLabelsEnabled(false)
-                 .markerRadius(0f)
-                 .series(arrayOf(
-                     AASeriesElement()
-                         .name("Berlin Hot")
-                         .color(AAGradientColor.deepSeaColor())
-                         .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
-                 )
-                 )
-
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.xAxis?.labels?.useHTML(true)
-
-            return aaOptions
-        }
-
-         fun configure_DataLabels_XAXis_YAxis_Legend_Style(): AAOptions {
-            val backgroundColorGradientColor = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToBottom,
-                "#4F00BC",
-                "#29ABE2"//颜色字符串设置支持十六进制类型和 rgba 类型
-            )
-
-            val fillColorGradientColor = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToBottom,
-                "rgba(256,256,256,0.3)",
-                "rgba(256,256,256,1.0)"//颜色字符串设置支持十六进制类型和 rgba 类型
-            )
-
-
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Areaspline)
-                .title("")
-                .subtitle("")
-                .backgroundColor(backgroundColorGradientColor)
-                .yAxisVisible(true)
-                .yAxisTitle("")
-                .categories(arrayOf("一月", "二月", "三月", "四月", "五月", "六月",
-                        "七月", "八月", "九月", "十月", "十一月", "十二月"))
-                .markerRadius(0f)
-                .series(arrayOf(
-                        AASeriesElement()
-                            .name("Berlin Hot")
-                            .color(AAColor.whiteColor())
-                            .lineWidth(7f)
-                            .fillColor(fillColorGradientColor)
-                            .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
-                    )
-                )
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.plotOptions?.areaspline
-                ?.dataLabels(AADataLabels()
-                             .enabled(true)
-                             .style(AAStyle()
-                                    .color(AAColor.blackColor())
-                                    .fontSize(14f)
-                                    .fontWeight(AAChartFontWeightType.Thin)))
-
-            val aaCrosshair = AACrosshair()
-                .dashStyle(AAChartLineDashStyleType.LongDashDot)
-                .color(AAColor.whiteColor())
-                .width(1f)
-
-            val aaLabels = AALabels()
-                .useHTML(true)
-                .style(AAStyle()
-                        .fontSize(10f)
-                        .fontWeight(AAChartFontWeightType.Bold)
-                        .color(AAColor.whiteColor())//轴文字颜色
-                )
-
-            aaOptions.yAxis!!
-                .opposite(true)
-                .tickWidth(2f)
-                .lineWidth(1.5f)//Y轴轴线颜色
-                .lineColor(AAColor.whiteColor())//Y轴轴线颜色
-                .gridLineWidth(0f)//Y轴网格线宽度
-                .crosshair(aaCrosshair)
-                .labels(aaLabels)
-
-            aaOptions.xAxis!!
-                .tickWidth(2f)//X轴刻度线宽度
-                .lineWidth(1.5f)//X轴轴线宽度
-                .lineColor(AAColor.whiteColor())//X轴轴线颜色
-                .crosshair(aaCrosshair)
-                .labels(aaLabels)
-
-
-            //设定图例项的CSS样式。只支持有关文本的CSS样式设定。
-            /*默认是:{
-         "color": "#333333",
-         "cursor": "pointer",
-         "fontSize": "12px",
-         "fontWeight": "bold"
-         }
-         */
-
-            aaOptions.legend!!
-                .itemStyle(
-                    AAItemStyle()
-                        .color(AAColor.whiteColor())//字体颜色
-                        .fontSize(13f)//字体大小
-                        .fontWeight("thin")//字体为细体字
-
-                )
-
-            return aaOptions
-        }
-         fun configureXAxisPlotBand(): AAOptions {
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Areaspline)
-                .title("")
-                .subtitle("")
-                .categories(arrayOf("一月", "二月", "三月", "四月", "五月", "六月",
-                    "七月", "八月", "九月", "十月", "十一月", "十二月"))
-                .yAxisTitle("")
-                .yAxisGridLineWidth(0f)
-                .markerRadius(8f)
-                .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)
-                .series(arrayOf(
-                        AASeriesElement()
-                            .name("New York Hot")
-                            .lineWidth(5.0f)
-                            .color("rgba(220,20,60,1)")////猩红色, alpha 透明度 1
-                            .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6)),
-                        AASeriesElement()
-                            .type(AAChartType.Column)
-                            .name("Berlin Hot")
-                            .color("#25547c")
-                            .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
-                        )
-                )
-
-
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            val aaPlotBandsElementArr = arrayOf(
-                AAPlotBandsElement()
-                    .from(-0.25f)//值域颜色带X轴起始值
-                    .to(4.75f)//值域颜色带X轴结束值
-                    .color("#06caf4")//值域颜色带填充色
-                ,
-                AAPlotBandsElement()
-                    .from(4.75f)
-                    .to(8.25f)
-                    .color("#ffd066")
-                ,
-                AAPlotBandsElement()
-                    .from(8.25f)
-                    .to(11.25f)
-                    .color("#04d69f")
-            )
-
-            val aaXAxis = aaOptions.xAxis
-            aaXAxis?.plotBands(aaPlotBandsElementArr)
-
-            return aaOptions
-        }
-
-         fun configureTheMirrorColumnChart(): AAOptions {
-            val gradientColorDic1 = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToTop,
-                "#7052f4",
-                "#00b0ff"//颜色字符串设置支持十六进制类型和 rgba 类型
-            )
-
-            val gradientColorDic2 = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToTop,
-                "#EF71FF",
-                "#4740C8"//颜色字符串设置支持十六进制类型和 rgba 类型
-            )
-
-            val aaYAxis1 = AAYAxis()
-                .visible(true)
-                .labels(AALabels()
-                        .enabled(true)//设置 y 轴是否显示数字
-                        .style(AAStyle()
-                                .color("#ff0000")//yAxis Label font color
-                                .fontSize(15f)//yAxis Label font size
-                                .fontWeight(AAChartFontWeightType.Bold)//yAxis Label font weight
-                        )
-                )
-                .gridLineWidth(0f)// Y 轴网格线宽度
-                .title(AATitle()
-                        .text("收入"))//Y 轴标题
-
-            val aaYAxis2 = AAYAxis()
-                .visible(true)
-                .opposite(true)
-                .title(AATitle()
-                        .text("支出"))
-
-            return AAOptions()
-                .chart(AAChart()
-                        .type(AAChartType.Column))
-                .title(AATitle()
-                        .text("正负镜像柱形图")
-                        .style(AAStyle()
-                                .color(AAColor.whiteColor())
-                                .fontSize(18f)))
-                .xAxis(AAXAxis()
-                        .categories(arrayOf("一月", "二月", "三月", "四月", "五月", "六月",
-                                "七月", "八月", "九月", "十月", "十一月", "十二月")))
-                .yAxisArray(arrayOf(aaYAxis1, aaYAxis2))
-                .plotOptions(AAPlotOptions()
-                             .series(AASeries()
-                                     .animation(AAAnimation()
-                                                .duration(800)
-                                                .easing(AAChartAnimationType.EaseInCirc)))
-                        .column(AAColumn()
-                                .grouping(false)
-                                .borderWidth(0f)
-                                .borderRadius(5f)))
-                .series(arrayOf(
-                        AASeriesElement()
-                            .name("收入")
-                            .color(gradientColorDic1)
-                            .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9,7.0, 6.9, 9.5, 14.5)),
-                        AASeriesElement()
-                            .name("支出")
-                            .color(gradientColorDic2)
-                            .data(arrayOf(-20.1, -14.1, -8.6, -2.5, -0.8, -5.7, -11.3, -17.0, -22.0, -24.8, -24.1, -20.1, -14.1, -8.6, -2.5)
-                            )))
-
-        }
-
-         fun configureDoubleYAxisChartOptions(): AAOptions {
-            val aaTitle = AATitle()
-                .text("")
-
-            val aaXAxis = AAXAxis()
-                .visible(true)
-                .min(0f)
-                .categories(arrayOf("Java", "Swift", "Python", "Ruby", "PHP", "Go","C",
-                        "C#", "C++", "Perl", "R", "MATLAB", "SQL"))
-
-            val aaYAxisTitleStyle = AAStyle()
-                .color("#1e90ff")//Title font color
-                .fontSize(14f)//Title font size
-                .fontWeight(AAChartFontWeightType.Bold)//Title font weight
-                .textOutline("0px 0px contrast")
-
-            val aaYAxisLabels = AALabels()
-                .enabled(true)//设置 y 轴是否显示数字
-                .style(AAStyle()
-                        .color("#ff0000")//yAxis Label font color
-                        .fontSize(15f)//yAxis Label font size
-                        .fontWeight(AAChartFontWeightType.Bold)//yAxis Label font weight
-                )
-
-            val yAxisOne = AAYAxis()
-                .visible(true)
-                .labels(aaYAxisLabels)
-                .title(AATitle()
-                        .text("冬季降雨量")
-                        .style(aaYAxisTitleStyle)
-                )
-                .opposite(true)
-
-
-            val yAxisTwo = AAYAxis()
-                .visible(true)
-                .labels(aaYAxisLabels)
-                .title(AATitle()
-                        .text("夏季降雨量")
-                        .style(aaYAxisTitleStyle)
-                )
-
-            val aaTooltip = AATooltip()
-                .enabled(true)
-                .shared(true)
-
-            val gradientColorDic1 = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToTop,
-                "#f54ea2",
-                "#ff7676"//颜色字符串设置支持十六进制类型和 rgba 类型
-            )
-
-            val gradientColorDic2 = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToTop,
-                "#17ead9",
-                "#6078ea"//颜色字符串设置支持十六进制类型和 rgba 类型
-            )
-
-            val aaMarker = AAMarker()
-                .radius(7f)//曲线连接点半径,默认是4
-                .symbol(AAChartSymbolType.Circle.value)//曲线点类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
-                .fillColor("#ffffff")//点的填充色(用来设置折线连接点的填充色)
-                .lineWidth(3f)//外沿线的宽度(用来设置折线连接点的轮廓描边的宽度)
-                .lineColor("")//外沿线的颜色(用来设置折线连接点的轮廓描边颜色,当值为空字符串时,默认取数据点或数据列的颜色)
-
-            val element1 = AASeriesElement()
-                .name("2017")
-                .type(AAChartType.Areaspline)
-                //          .borderRadius(4)
-                .color(gradientColorDic1)
-                .marker(aaMarker)
-                .yAxis(1)
-                .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
-
-            val element2 = AASeriesElement()
-                .name("2018")
-                .type(AAChartType.Column)
-                .color(gradientColorDic2)
-                .yAxis(0)
-                .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
-
-
-            return AAOptions()
-                .title(aaTitle)
-                .xAxis(aaXAxis)
-                .yAxisArray(arrayOf(yAxisOne, yAxisTwo))
-                .tooltip(aaTooltip)
-                .series(arrayOf(element1, element2))
-        }
-
-         fun configureTripleYAxesMixedChart(): AAOptions {
-            val colorsThemeArr = arrayOf("red", "mediumspringgreen", "deepskyblue")
-
-            val aaTitle = AATitle()
-                .text("东京月平均天气数据")
-
-            val aaSubtitle = AASubtitle()
-                .text("数据来源: WorldClimate.com")
-
-            val aaXAxis = AAXAxis()
-                .visible(true)
-                .min(0f)
-                .categories(arrayOf("一月", "二月", "三月", "四月", "五月", "六月",
-                        "七月", "八月", "九月", "十月", "十一月", "十二月"))
-
-            val yAxis1 = AAYAxis()
-                .visible(true)
-                .gridLineWidth(0f)
-                .labels(AALabels()
-                        .enabled(true)//设置 y 轴是否显示数字
-                        .format("{value}°C")
-                        .style(AAStyle()
-                                .color(colorsThemeArr[2])))//yAxis Label font color
-                .title(AATitle()
-                        .text("温度")
-                        .style(AAStyle()
-                                .color(colorsThemeArr[2])))
-                .opposite(true)
-
-            val yAxis2 = AAYAxis()
-                .visible(true)
-                .gridLineWidth(0f)
-                .labels(AALabels()
-                        .enabled(true)//设置 y 轴是否显示数字
-                        .format("{value}°mm")
-                        .style(AAStyle()
-                                .color(colorsThemeArr[0])))//yAxis Label font color
-                .title(AATitle()
-                        .text("降雨量")
-                        .style(AAStyle()
-                                .color(colorsThemeArr[0])))
-
-            val yAxis3 = AAYAxis()
-                .visible(true)
-                .gridLineWidth(0f)
-                .labels(AALabels()
-                        .enabled(true)//设置 y 轴是否显示数字
-                        .format("{value}°mb")
-                        .style(AAStyle()
-                                .color(colorsThemeArr[1])))//yAxis Label font color
-                .title(AATitle()
-                        .text("海平面气压")
-                        .style(AAStyle()
-                                .color(colorsThemeArr[1])))
-                .opposite(true)
-
-
-            val aaTooltip = AATooltip()
-                .enabled(true)
-                .shared(true)
-
-            val aaLegend = AALegend()
-                .enabled(true)
-                .floating(true)
-                .layout(AAChartLayoutType.Vertical)
-                .align(AAChartAlignType.Left)
-                .x(80f)
-                .verticalAlign(AAChartVerticalAlignType.Top)
-                .y(55f)
-
-            val element1 = AASeriesElement()
-                .name("降雨量")
-                .type(AAChartType.Column)
-                .yAxis(1)
-                .data(arrayOf(49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4))
-                .tooltip(AATooltip()
-                        .valueSuffix(" mm"))
-
-            val element2 = AASeriesElement()
-                .name("海平面气压")
-                .type(AAChartType.Line)
-                .yAxis(2)
-                .data(arrayOf(1016, 1016, 1015.9, 1015.5, 1012.3, 1009.5, 1009.6, 1010.2, 1013.1, 1016.9, 1018.2, 1016.7))
-                .dashStyle(AAChartLineDashStyleType.ShortDot)
-                .tooltip(AATooltip()
-                        .valueSuffix(" mb"))
-
-            val element3 = AASeriesElement()
-                .name("温度")
-                .type(AAChartType.Line)
-                .yAxis(0)
-                .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6))
-                .tooltip(AATooltip()
-                        .valueSuffix(" ℃"))
-
-            return AAOptions()
-                .title(aaTitle)
-                .subtitle(aaSubtitle)
-                .colors(colorsThemeArr as Array<Any>)
-                .xAxis(aaXAxis)
-                .yAxisArray(arrayOf(yAxis1, yAxis2, yAxis3))
-                .tooltip(aaTooltip)
-                .legend(aaLegend)
-                .series(arrayOf(element1, element2, element3))
-        }
-
-       fun customLineChartDataLabelsFormat(): AAOptions {
-            val aaChartModel = AAChartModel()
-                //选择图表类型
-                .chartType(AAChartType.Line)
-                .colorsTheme(arrayOf("#465DBC"))
-                //title标题
-                .title("最近三十分钟数据展示")
-                .titleStyle(AAStyle()
-                    .color("#0F0F0F")
-                    .fontSize(20f))
-                //坐标轴字体颜色
-                .axesTextColor("#0F0F0F")
-                //背景颜色
-                .zoomType(AAChartZoomType.XY)
-                .backgroundColor("#FFFFFF")
-                //数据是否显示
-                .dataLabelsEnabled(true)
-                //x轴是否显示数据
-                .xAxisLabelsEnabled(true)
-                //x轴显示的数据间隔
-                .xAxisTickInterval(5)
-                //y轴是否显示数据
-                .yAxisLabelsEnabled(true)
-                //y轴标题
-                .yAxisTitle("湿度%")
-                //y轴最大值
-                .yAxisMax(100.0f)
-                //y轴最小值
-                .yAxisMin(0.0f)
-                .yAxisAllowDecimals(true) //y轴数据
-                .series(arrayOf(
-                        AASeriesElement()
-                            .name("湿度")
-                            .data(arrayOf(44.0999, 44.8880, 44.7770, 43.0066, 43.6660, 43.5550)
-                            )
-                    )
-                )
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.plotOptions?.line?.dataLabels?.format =
-                "{point.y:.4f} ℃" //保留 Y 轴值的小数点后 4 位
-            return aaOptions
-        }
-
-       fun configureDoubleYAxesAndColumnLineMixedChart(): AAOptions {
-            val stopsArr: Array<Any> = arrayOf(
-                    arrayOf(0.0, "rgba(156,107,211,0.5)"),
-                    arrayOf(0.2, "rgba(156,107,211,0.3)"),
-                    arrayOf(1.0, "rgba(156,107,211,0)")
-                )
-            val gradientColorDic1: Map<String, *> = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToBottom,
-                stopsArr
-            )
-            val gradientColorDic2: Map<String, *> = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToBottom,
-                "#956FD4",
-                "#3EACE5" //颜色字符串设置支持十六进制类型和 rgba 类型
-            )
-            val category = arrayOf(
-                "市区", "万州", "江北", "南岸", "北碚", "綦南", "长寿", "永川", "璧山", "江津",
-                "城口", "大足", "垫江", "丰都", "奉节", "合川", "江津区", "开州", "南川", "彭水",
-                "黔江", "石柱", "铜梁", "潼南", "巫山", "巫溪", "武隆", "秀山", "酉阳", "云阳",
-                "忠县", "川东", "检修"
-            )
-            val goalValuesArr = arrayOf(
-                18092, 20728, 24045, 28348, 32808
-                , 36097, 39867, 44715, 48444, 50415
-                , 56061, 62677, 59521, 67560, 18092, 20728, 24045, 28348, 32808
-                , 36097, 39867, 44715, 48444, 50415, 36097, 39867, 44715, 48444, 50415
-                , 50061, 32677, 49521, 32808
-            )
-            val realValuesArr = arrayOf(
-                4600, 5000, 5500, 6500, 7500
-                , 8500, 9900, 12500, 14000, 21500
-                , 23200, 24450, 25250, 33300, 4600, 5000, 5500, 6500, 7500
-                , 8500, 9900, 22500, 14000, 21500, 8500, 9900, 12500, 14000, 21500
-                , 23200, 24450, 25250, 7500
-            )
-            val rateValuesArr = arrayOfNulls<Any>(33) 
-            for (i in 0..32) {
-                val goalValue: Float = goalValuesArr[i].toFloat()
-                val realValue: Float = realValuesArr[i].toFloat()
-                val rateValue = realValue / goalValue
-                rateValuesArr[i] = rateValue
-            }
-            val aaChart = AAChart()
-                .backgroundColor("#191E40")
-            val aaTitle = AATitle()
-                .text("")
-            val aaLabels = AALabels()
-                .enabled(true)
-                .style(AAStyle()
-                        .color(AAColor.lightGrayColor())
-                )
-            val aaXAxis = AAXAxis()
-                .visible(true)
-                .labels(aaLabels)
-                .min(0f)
-                .categories(category)
-            val aaYAxisTitleStyle = AAStyle()
-                .color("#1e90ff") //Title font color
-                .fontSize(14f) //Title font size
-                .fontWeight(AAChartFontWeightType.Bold) //Title font weight
-                .textOutline("0px 0px contrast")
-            val yAxis1 = AAYAxis()
-                .visible(true)
-                .labels(aaLabels)
-                .gridLineWidth(0f)
-                .title(AATitle()
-                        .text("已贯通 / 计划贯通")
-                        .style(aaYAxisTitleStyle)
-                )
-            val yAxis2 = AAYAxis()
-                .visible(true)
-                .labels(aaLabels)
-                .gridLineWidth(0f)
-                .title(AATitle()
-                        .text("贯通率")
-                        .style(aaYAxisTitleStyle)
-                )
-                .opposite(true)
-            val aaTooltip = AATooltip()
-                .enabled(true)
-                .shared(true)
-            val aaPlotOptions = AAPlotOptions()
-                .series(
-                    AASeries()
-                        .animation(
-                            AAAnimation()
-                                .easing(AAChartAnimationType.EaseTo)
-                                .duration(1000)
-                        )
-                )
-                .column(AAColumn()
-                        .grouping(false)
-                        .pointPadding(0f)
-                        .pointPlacement(0f)
-                )
-            val aaLegend = AALegend()
-                .enabled(true)
-                .itemStyle(
-                    AAItemStyle()
-                        .color(AAColor.lightGrayColor())
-                )
-                .floating(true)
-                .layout(AAChartLayoutType.Horizontal)
-                .align(AAChartAlignType.Left)
-                .x(30f)
-                .verticalAlign(AAChartVerticalAlignType.Top)
-                .y(10f)
-            val goalValuesElement: AASeriesElement = AASeriesElement()
-                .name("计划贯通")
-                .type(AAChartType.Column)
-                .borderWidth(0f)
-                .color(gradientColorDic1)
-                .yAxis(0)
-                .data(goalValuesArr as Array<Any>)
-            val realValuesElement: AASeriesElement = AASeriesElement()
-                .name("已贯通")
-                .type(AAChartType.Column)
-                .borderWidth(0f)
-                .color(gradientColorDic2)
-                .yAxis(0)
-                .data(realValuesArr as Array<Any>)
-            val rateValuesElement = AASeriesElement()
-                .name("贯通率")
-                .type(AAChartType.Line)
-                .marker(
-                    AAMarker()
-                        .radius(7f) //曲线连接点半径,默认是4
-                        .symbol(AAChartSymbolType.Circle.value) //曲线点类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
-                        .fillColor("#ffffff") //点的填充色(用来设置折线连接点的填充色)
-                        .lineWidth(3f) //外沿线的宽度(用来设置折线连接点的轮廓描边的宽度)
-                        .lineColor("") //外沿线的颜色(用来设置折线连接点的轮廓描边颜色,当值为空字符串时,默认取数据点或数据列的颜色)
-                )
-                .color("#F02FC2")
-                .yAxis(1)
-                .data(rateValuesArr as Array<Any>)
-            return AAOptions()
-                .chart(aaChart)
-                .title(aaTitle)
-                .xAxis(aaXAxis)
-                .yAxisArray(arrayOf(yAxis1, yAxis2))
-                .tooltip(aaTooltip)
-                .plotOptions(aaPlotOptions)
-                .legend(aaLegend)
-                .series(arrayOf(
-                        goalValuesElement,
-                        realValuesElement,
-                        rateValuesElement
-                    )
-                )
-        }
-
-       fun configureDoubleYAxesMarketDepthChart(): AAOptions {
-            val aaChart = AAChart()
-                .type(AAChartType.Area)
-            val aaTitle = AATitle()
-                .text("ETH-BTC 市场深度图")
-            val aaSubtitle = AASubtitle()
-                .text("数据来源: https://github.com/AAChartModel")
-            val aaXAxis = AAXAxis()
-                .visible(true)
-                .plotLines(arrayOf(
-                        AAPlotLinesElement()
-                            .color(AAColor.redColor())
-                            .value(0.1523f)
-                            .width(1.5f)
-                            .label(
-                                AALabel()
-                                    .text("实际价格")
-                                    .style(AAChartLineDashStyleType.ShortDashDotDot) //.rotation(90)
-                            )
-                    )
-                )
-            val yAxis1 = AAYAxis()
-                .visible(true)
-                .lineWidth(1f)
-                .title(AATitle()
-                        .text("")
-                )
-                .tickWidth(1f)
-                .tickLength(5f)
-                .tickPosition("inside")
-                .gridLineWidth(1f)
-                .labels(AALabels()
-                        .enabled(true) //设置 y 轴是否显示数字
-                        .align(AAChartAlignType.Left)
-                        .x(8f)
-                )
-            val yAxis2 = AAYAxis()
-                .opposite(true)
-                .visible(true)
-                .lineWidth(1f)
-                .title(AATitle()
-                        .text("")
-                )
-                .tickWidth(1f)
-                .tickLength(5f)
-                .tickPosition("inside")
-                .gridLineWidth(0f)
-                .labels(AALabels()
-                        .enabled(true) //设置 y 轴是否显示数字
-                        .align(AAChartAlignType.Right)
-                        .x(-8f)
-                )
-            val aaTooltip = AATooltip()
-                .enabled(true)
-                .headerFormat("<span style=\\\"font-size=10px;\\\">Price: {point.key}</span><br/>")
-                .valueDecimals(2)
-            val aaLegend = AALegend()
-                .enabled(false)
-            val element1 = AASeriesElement()
-                .name("Bids")
-                .color("#04d69f")
-                .step(true)
-                .data(arrayOf(
-                        arrayOf(0.1524, 0.948665),
-                        arrayOf(0.1539, 35.510715),
-                        arrayOf(0.154, 39.883437),
-                        arrayOf(0.1541, 40.499661),
-                        arrayOf(0.1545, 43.262994000000006),
-                        arrayOf(0.1547, 60.14799400000001),
-                        arrayOf(0.1553, 60.30799400000001),
-                        arrayOf(0.1558, 60.55018100000001),
-                        arrayOf(0.1564, 68.381696),
-                        arrayOf(0.1567, 69.46518400000001),
-                        arrayOf(0.1569, 69.621464),
-                        arrayOf(0.157, 70.398015),
-                        arrayOf(0.1574, 70.400197),
-                        arrayOf(0.1575, 73.199217),
-                        arrayOf(0.158, 77.700017),
-                        arrayOf(0.1583, 79.449017),
-                        arrayOf(0.1588, 79.584064),
-                        arrayOf(0.159, 80.584064),
-                        arrayOf(0.16, 81.58156),
-                        arrayOf(0.1608, 83.38156)
-                    )
-                )
-            val element2 = AASeriesElement()
-                .name("Asks")
-                .color("#1e90ff")
-                .step(true)
-                .data(arrayOf(
-                        arrayOf(0.1435, 242.521842),
-                        arrayOf(0.1436, 206.49862099999999),
-                        arrayOf(0.1437, 205.823735),
-                        arrayOf(0.1438, 197.33275),
-                        arrayOf(0.1439, 153.677454),
-                        arrayOf(0.144, 146.007722),
-                        arrayOf(0.1442, 82.55212900000001),
-                        arrayOf(0.1443, 59.152814000000006),
-                        arrayOf(0.1444, 57.942260000000005),
-                        arrayOf(0.1445, 57.483850000000004),
-                        arrayOf(0.1446, 52.39210800000001),
-                        arrayOf(0.1447, 51.867208000000005),
-                        arrayOf(0.1448, 44.104697),
-                        arrayOf(0.1449, 40.131217),
-                        arrayOf(0.145, 31.878217),
-                        arrayOf(0.1451, 22.794916999999998),
-                        arrayOf(0.1453, 12.345828999999998),
-                        arrayOf(0.1454, 10.035642),
-                        arrayOf(0.148, 9.326642),
-                        arrayOf(0.1522, 3.76317)
-                    )
-                )
-            return AAOptions()
-                .chart(aaChart)
-                .title(aaTitle)
-                .subtitle(aaSubtitle)
-                .xAxis(aaXAxis)
-                .yAxisArray(arrayOf(yAxis1, yAxis2))
-                .tooltip(aaTooltip)
-                .legend(aaLegend)
-                .series(arrayOf(element1, element2))
-        }
-
-       fun customAreaChartTooltipStyleLikeHTMLTable(): AAOptions {
-            val element1 = AASeriesElement()
-                .name("Predefined symbol")
-                .data(arrayOf(0.45, 0.43, 0.50, 0.55, 0.58, 0.62, 0.83, 0.39, 0.56, 0.67, 0.50, 0.34, 0.50, 0.67, 0.58, 0.29, 0.46, 0.23, 0.47, 0.46, 0.38, 0.56, 0.48, 0.36))
-
-            val element2 = AASeriesElement()
-                .name("Image symbol")
-                .data(arrayOf(0.38, 0.31, 0.32, 0.32, 0.64, 0.66, 0.86, 0.47, 0.52, 0.75, 0.52, 0.56, 0.54, 0.60, 0.46, 0.63, 0.54, 0.51, 0.58, 0.64, 0.60, 0.45, 0.36, 0.67))
-
-            val element3 = AASeriesElement()
-                .name("Base64 symbol (*)")
-                .data(arrayOf(0.46, 0.32, 0.53, 0.58, 0.86, 0.68, 0.85, 0.73, 0.69, 0.71, 0.91, 0.74, 0.60, 0.50, 0.39, 0.67, 0.55, 0.49, 0.65, 0.45, 0.64, 0.47, 0.63, 0.64))
-
-            val element4 = AASeriesElement()
-                .name("Custom symbol")
-                .data(arrayOf(0.60, 0.51, 0.52, 0.53, 0.64, 0.84, 0.65, 0.68, 0.63, 0.47, 0.72, 0.60, 0.65, 0.74, 0.66, 0.65, 0.71, 0.59, 0.65, 0.77, 0.52, 0.53, 0.58, 0.53))
-
-
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Areaspline) //图表类型
-                .title("") //图表主标题
-                .subtitle("") //图表副标题
-                .colorsTheme(arrayOf("#04d69f", "#1e90ff", "#ef476f", "#ffd066"))
-                .stacking(AAChartStackingType.Normal)
-                .yAxisTitle("") //设置 Y 轴标题
-                .yAxisVisible(false)
-                .markerRadius(0f)
-                .series(arrayOf(element1, element2, element3, element4))
-
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.tooltip!!
-                .shared(true)
-                .useHTML(true)
-                .headerFormat("<small>{point.key} 摄氏度</small><table>")
-                .pointFormat("<tr><td style=\\\"color: {series.color}\\\">{series.name}: </td>"
-                            + "<td style=\\\"text-align: right\\\"><b>{point.y}EUR</b></td></tr>"
-                )
-                .footerFormat("</table>")
-                .valueDecimals(2)
-            return aaOptions
-        }
-
-        fun simpleGaugeChart(): AAOptions {
-            return AAOptions()
-                .chart(AAChart()
-                        .type(AAChartType.Gauge)
-                )
-                .pane(AAPane()
-                        .startAngle(-150f)
-                        .endAngle(150f)
-                )
-                .yAxis(AAYAxis()
-                        .min(0f)
-                        .max(100f)
-                        .plotBands(arrayOf(
-                                AAPlotBandsElement()
-                                    .from(0f)
-                                    .to(60f)
-                                    .color("#FF0000")
-                            )
-                        )
-                )
-                .series(arrayOf(
-                        AASeriesElement()
-                            .data(arrayOf(80))
-                    )
-                )
-        }
-
-        fun gaugeChartWithPlotBand(): AAOptions {
-            return AAOptions()
-                .chart(AAChart()
-                        .type(AAChartType.Gauge))
-                .title(AATitle()
-                        .text("速度仪"))
-                .pane(AAPane()
-                        .startAngle(-150f)
-                        .endAngle(150f))
-                .yAxis(AAYAxis()
-                        .min(0f)
-                        .max(200f)
-                        .title(AATitle()
-                                .text("km/h"))
-                        .plotBands(arrayOf(
-                                AAPlotBandsElement()
-                                    .from(0f)
-                                    .to(120f)
-                                    .color("#ffc069"),
-                                AAPlotBandsElement()
-                                    .from(120f)
-                                    .to(160f)
-                                    .color("#fe117c"),
-                                AAPlotBandsElement()
-                                    .from(160f)
-                                    .to(200f)
-                                    .color("#06caf4")
-                            )
-                        )
-                )
-                .series(arrayOf(
-                        AASeriesElement()
-                            .data(arrayOf(80))
-                    ))
-        }
-
-    }
-}

File diff suppressed because it is too large
+ 0 - 422
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/CustomStyleChartComposer.kt


+ 0 - 793
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/CustomTooltipComposer.kt

@@ -1,793 +0,0 @@
-/**
- * Copyright (C), 2015-2019,
- * FileName: CustomTooltipComposer
- * Author: ios-fn
- * Date: 2019-06-22 19:41
- * Description:
- * History:
- */
-/**
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- */
-
-/**
-
- * -------------------------------------------------------------------------------
- *
- *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
- *
- * Please contact me on GitHub,if there are any problems encountered in use.
- * GitHub Issues : https://github.com/AAChartModel/AAChartCore-Kotlin/issues
- * -------------------------------------------------------------------------------
- * And if you want to contribute for this project, please contact me as well
- * GitHub        : https://github.com/AAChartModel
- * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
- * JianShu       : http://www.jianshu.com/u/f1e6753d4254
- * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
- *
- * -------------------------------------------------------------------------------
-
- */
-package com.aachartmodel.aainfographics.ChartsDemo.ChartComposer
-
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.*
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.*
-
-class CustomTooltipComposer {
-    companion object {
-        fun customAreaChartTooltipStyleWithFormatterFunction1(): AAOptions {
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Area)//图形类型
-                .title("近三个月金价起伏周期图")//图表主标题
-                .subtitle("金价(元/克)")//图表副标题
-                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
-                .dataLabelsEnabled(false)
-                .categories(arrayOf(
-                    "10-01", "10-02", "10-03", "10-04", "10-05", "10-06", "10-07", "10-08", "10-09", "10-10", "10-11",
-                    "10-12", "10-13", "10-14", "10-15", "10-16", "10-17", "10-18", "10-19", "10-20", "10-21", "10-22",
-                    "10-23", "10-024", "10-25", "10-26", "10-27", "10-28", "10-29", "10-30", "10-31", "11-01", "11-02",
-                    "11-03", "11-04", "11-05", "11-06", "11-07", "11-08", "11-09", "11-10", "11-11", "11-12", "11-13",
-                    "11-14", "11-15", "11-16", "11-17", "11-18", "11-19", "11-20", "11-21", "11-22", "11-23", "11-024",
-                    "11-25", "11-26", "11-27", "11-28", "11-29", "11-30", "12-01", "12-02", "12-03", "12-04", "12-05",
-                    "12-06", "12-07", "12-08", "12-09", "12-10", "12-11", "12-12", "12-13", "12-14", "12-15", "12-16",
-                    "12-17", "12-18", "12-19", "12-20", "12-21", "12-22", "12-23", "12-024", "12-25", "12-26", "12-27",
-                    "12-28", "12-29", "12-30"))
-                .series(arrayOf(
-                    AASeriesElement()
-                        .name("2020")
-                        .lineWidth(3f)
-                        .color("#FFD700"/*纯金色*/)
-                        .fillOpacity(0.5f)
-                        .data(arrayOf(
-                            1.51, 6.7, 0.94, 1.44, 1.6, 1.63, 1.56, 1.91, 2.45, 3.87, 3.24, 4.90, 4.61, 4.10,
-                            4.17, 3.85, 4.17, 3.46, 3.46, 3.55, 3.50, 4.13, 2.58, 2.28, 1.51, 12.7, 0.94, 1.44,
-                            18.6, 1.63, 1.56, 1.91, 2.45, 3.87, 3.24, 4.90, 4.61, 4.10, 4.17, 3.85, 4.17, 3.46,
-                            3.46, 3.55, 3.50, 4.13, 2.58, 2.28, 1.33, 4.68, 1.31, 1.10, 13.9, 1.10, 1.16, 1.67,
-                            2.64, 2.86, 3.00, 3.21, 4.14, 4.07, 3.68, 3.11, 3.41, 3.25, 3.32, 3.07, 3.92, 3.05,
-                            2.18, 3.24, 3.23, 3.15, 2.90, 1.81, 2.11, 2.43, 5.59, 3.09, 4.09, 6.14, 5.33, 6.05,
-                            5.71, 6.22, 6.56, 4.75, 5.27, 6.02, 5.48))
-                ))
-
-            val aaTooltip = AATooltip()
-                .useHTML(true)
-                .formatter(
-                    """
-function () {
-        return ' 🌕 🌖 🌗 🌘 🌑 🌒 🌓 🌔 <br/> '
-        + ' Support JavaScript Function Just Right Now !!! <br/> '
-        + ' The Gold Price For <b>2020 '
-        +  this.x
-        + ' </b> Is <b> '
-        +  this.y
-        + ' </b> Dollars ';
-        }
-             """.trimIndent()
-                )
-                .valueDecimals(2)//设置取值精确到小数点后几位//设置取值精确到小数点后几位
-                .backgroundColor("#000000")
-                .borderColor("#000000")
-                .style(
-                    AAStyle()
-                        .color("#FFD700")
-                        .fontSize(12f)
-                )
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.tooltip(aaTooltip)
-            return aaOptions
-        }
-
-        fun customAreaChartTooltipStyleWithFormatterFunction2(): AAOptions {
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Area)//图形类型
-                .title("2014 ~ 2020 汪星人生存指数")//图表主标题
-                .subtitle("数据来源:www.无任何可靠依据.com")//图表副标题
-                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
-                .dataLabelsEnabled(false)
-                .colorsTheme(arrayOf("#ff0000", "#0000ff"))
-                .stacking(AAChartStackingType.Normal)
-                .series(arrayOf(
-                    AASeriesElement()
-                        .name("🐶狗子")
-                        .lineWidth(5f)
-                        .fillOpacity(0.5f)
-                        .data(arrayOf(0.45, 0.43, 0.50, 0.55, 0.58, 0.62, 0.83, 0.39, 0.56, 0.67, 0.50, 0.34, 0.50, 0.67, 0.58, 0.29, 0.46, 0.23, 0.47, 0.46, 0.38, 0.56, 0.48, 0.36)),
-                    AASeriesElement()
-                        .name("🌲树木")
-                        .lineWidth(5f)
-                        .fillOpacity(0.5f)
-                        .data(arrayOf(0.38, 0.31, 0.32, 0.32, 0.64, 0.66, 0.86, 0.47, 0.52, 0.75, 0.52, 0.56, 0.54, 0.60, 0.46, 0.63, 0.54, 0.51, 0.58, 0.64, 0.60, 0.45, 0.36, 0.67))
-                ))
-
-            val aaTooltip = AATooltip()
-                .useHTML(true)
-                .formatter(
-                    """
-function () {
-        var s = '第' + '<b>' +  this.x + '</b>' + '年' + '<br/>';
-        var colorDot1 = '<span style=\"' + 'color:#1e90ff; font-size:13px\"' + '>◉</span> ';
-        var colorDot2 = '<span style=\"' + 'color:#ef476f; font-size:13px\"' + '>◉</span> ';
-        var s1 = colorDot1  + this.points[0].series.name + ': ' + this.points[0].y + '只' + '<br/>';
-        var s2 =  colorDot2 + this.points[1].series.name + ': ' + this.points[1].y + '棵';
-        s += s1 + s2;
-        return s;
-    }
-             """.trimIndent()
-                )
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.tooltip = aaTooltip
-            return aaOptions
-        }
-
-        fun customAreaChartTooltipStyleWithFormatterFunction3(): AAOptions {
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Area)//图形类型
-                .title("2014 ~ 2020 汪星人生存指数")//图表主标题
-                .subtitle("数据来源:www.无任何可靠依据.com")//图表副标题
-                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
-                .dataLabelsEnabled(false)
-                .categories(arrayOf("临床一期", "临床二期", "临床三期"))
-                .series(arrayOf(
-                    AASeriesElement()
-                        .name("上市")
-                        .data(arrayOf(0, 0, 7)),
-                    AASeriesElement()
-                        .name("中止")
-                        .data(arrayOf(4, 5, 1)),
-                    AASeriesElement()
-                        .name("无进展")
-                        .data(arrayOf(2, 0, 1)),
-                    AASeriesElement()
-                        .name("进行中")
-                        .data(arrayOf(3, 5, 2))
-                ))
-
-            val aaTooltip = AATooltip()
-                .useHTML(true)
-                .formatter(
-                    """
-function () {
-        var colorDot0 = '<span style=\"' + 'color:red; font-size:13px\"' + '>◉</span> ';
-        var colorDot1 = '<span style=\"' + 'color:mediumspringgreen; font-size:13px\"' + '>◉</span> ';
-        var colorDot2 = '<span style=\"' + 'color:deepskyblue; font-size:13px\"' + '>◉</span> ';
-        var colorDot3 = '<span style=\"' + 'color:sandybrown; font-size:13px\"' + '>◉</span> ';
-        var colorDotArr = [colorDot0, colorDot1, colorDot2, colorDot3];
-        var wholeContentString = this.points[0].x + '<br/>';
-        for (var i = 0;i < 4;i++) {
-            var yValue = this.points[i].y;
-            if (yValue != 0) {
-                var prefixStr = colorDotArr[i];
-                wholeContentString += prefixStr + this.points[i].series.name + ': ' + this.points[i].y + '<br/>';
-            }
-        }
-        return wholeContentString;
-    }
-                """.trimIndent()
-                )
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.tooltip = aaTooltip
-            return aaOptions
-        }
-
-        fun customAreaChartTooltipStyleWithFormatterFunction4(): AAOptions {
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Areaspline)//图形类型
-                .title("")//图表主标题
-                .subtitle("")//图表副标题
-                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
-                .dataLabelsEnabled(false)
-                .colorsTheme(arrayOf("#04d69f", "#1e90ff", "#ef476f", "#ffd066"))
-                .stacking(AAChartStackingType.Normal)
-                .markerRadius(0f)
-                .series(arrayOf(
-                    AASeriesElement()
-                        .name("Tokyo Hot")
-                        .lineWidth(5.0f)
-                        .fillOpacity(0.4f)
-                        .data(arrayOf(0.45, 0.43, 0.50, 0.55, 0.58, 0.62, 0.83, 0.39, 0.56, 0.67, 0.50, 0.34, 0.50, 0.67, 0.58, 0.29, 0.46, 0.23, 0.47, 0.46, 0.38, 0.56, 0.48, 0.36)),
-                    AASeriesElement()
-                        .name("Berlin Hot")
-                        .lineWidth(5.0f)
-                        .fillOpacity(0.4f)
-                        .data(arrayOf(0.38, 0.31, 0.32, 0.32, 0.64, 0.66, 0.86, 0.47, 0.52, 0.75, 0.52, 0.56, 0.54, 0.60, 0.46, 0.63, 0.54, 0.51, 0.58, 0.64, 0.60, 0.45, 0.36, 0.67)),
-                    AASeriesElement()
-                        .name("New York Hot")
-                        .lineWidth(5.0f)
-                        .fillOpacity(0.4f)
-                        .data(arrayOf(0.46, 0.32, 0.53, 0.58, 0.86, 0.68, 0.85, 0.73, 0.69, 0.71, 0.91, 0.74, 0.60, 0.50, 0.39, 0.67, 0.55, 0.49, 0.65, 0.45, 0.64, 0.47, 0.63, 0.64)),
-                    AASeriesElement()
-                        .name("London Hot")
-                        .lineWidth(5.0f)
-                        .fillOpacity(0.4f)
-                        .data(arrayOf(0.60, 0.51, 0.52, 0.53, 0.64, 0.84, 0.65, 0.68, 0.63, 0.47, 0.72, 0.60, 0.65, 0.74, 0.66, 0.65, 0.71, 0.59, 0.65, 0.77, 0.52, 0.53, 0.58, 0.53))
-                ))
-
-            val aaTooltip = AATooltip()
-                .useHTML(true)
-                .formatter(
-                    """
-function () {
-        var colorsArr = ["mediumspringgreen", "deepskyblue", "red", "sandybrown"];
-        var wholeContentString ='<span style=\"' + 'color:lightGray; font-size:13px\"' + '>◉ Time: ' + this.x + ' year</span><br/>';
-        for (var i = 0;i < 4;i++) {
-            var thisPoint = this.points[i];
-            var yValue = thisPoint.y;
-            if (yValue != 0) {
-                var spanStyleStartStr = '<span style=\"' + 'color:'+ colorsArr[i] + '; font-size:13px\"' + '>◉ ';
-                var spanStyleEndStr = '</span> <br/>';
-                wholeContentString += spanStyleStartStr + thisPoint.series.name + ': ' + thisPoint.y + '℃' + spanStyleEndStr;
-            }
-        }
-        return wholeContentString;
-    }
-                """.trimIndent()
-                )
-                .backgroundColor("#050505")
-                .borderColor("#050505")
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.tooltip = aaTooltip
-            return aaOptions
-        }
-
-        fun customBoxplotTooltipContent(): AAOptions {
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Boxplot)
-                .title("BOXPLOT CHART")
-                .subtitle("virtual data")
-                .yAxisTitle("℃")
-                .series(arrayOf(
-                    AASeriesElement()
-                        .name("Observed Data")
-                        .color("#ef476f")
-                        .fillColor(AAGradientColor.deepSeaColor())
-                        .data(arrayOf(
-                            arrayOf(760, 801, 848, 895, 965),
-                            arrayOf(733, 853, 939, 980, 1080),
-                            arrayOf(714, 762, 817, 870, 918),
-                            arrayOf(724, 802, 806, 871, 950),
-                            arrayOf(834, 836, 864, 882, 910)
-                        )
-                        )
-                )
-                )
-
-            val pointFormatStr = (
-                    "◉</span> <b> {series.name}</b><br/>"
-                            + "最大值: {point.high}<br/>"
-                            + "Q2: {point.q3}<br/>"
-                            + "中位数: {point.median}<br/>"
-                            + "Q1: {point.q1}<br/>"
-                            + "最小值: {point.low}<br/>"
-                    )
-
-            val aaTooltip = AATooltip()
-                .useHTML(true)
-                .headerFormat("<em>实验号码: {point.key}</em><br/>")
-                .pointFormat(pointFormatStr)
-                .valueDecimals(2)//设置取值精确到小数点后几位//设置取值精确到小数点后几位
-                .backgroundColor("#000000")
-                .borderColor("#000000")
-                .style(AAStyle()
-                    .color("#1e90ff")
-                    .fontSize(12f)
-                )
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.tooltip = aaTooltip
-            return aaOptions
-        }
-
-         fun customYAxisLabels():AAOptions {
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Line)//图形类型
-                .title("")//图表主标题
-                .subtitle("")//图表副标题
-                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
-                .dataLabelsEnabled(false)
-                .colorsTheme(arrayOf("#04d69f", "#1e90ff", "#ef476f", "#ffd066"))
-                .stacking(AAChartStackingType.Normal)
-                .markerRadius(8f)
-                .series(arrayOf(
-                    AASeriesElement()
-                    .name("Tokyo Hot")
-                    .lineWidth(5.0f)
-                    .fillOpacity(0.4f)
-                    .data(arrayOf(29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4))))
-
-            val aaYAxisLabels = AALabels()
-                .formatter("""
-function () {
-        var yValue = this.value;
-        if (yValue >= 200) {
-            return "极佳";
-        } else if (yValue >= 150 && yValue < 200) {
-            return "非常棒";
-        } else if (yValue >= 100 && yValue < 150) {
-            return "相当棒";
-        } else if (yValue >= 50 && yValue < 100) {
-            return "还不错";
-        } else {
-            return "一般";
-        }
-    }
-                """.trimIndent()
-                )
-
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.yAxis?.labels(aaYAxisLabels)
-
-            return aaOptions
-        }
-
-         fun customYAxisLabels2():AAOptions {
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Line)//图形类型
-                .title("")//图表主标题
-                .subtitle("")//图表副标题
-                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
-                .dataLabelsEnabled(false)
-                .colorsTheme(arrayOf("#04d69f", "#1e90ff", "#ef476f", "#ffd066"))
-                .stacking(AAChartStackingType.Normal)
-                .markerRadius(8f)
-                .series(arrayOf(AASeriesElement()
-                    .name("Tokyo Hot")
-                    .lineWidth(5.0f)
-                    .fillOpacity(0.4f)
-                    .data(arrayOf(229.9, 771.5, 1106.4, 1129.2, 6644.0, 1176.0, 8835.6, 148.5, 8816.4, 6694.1, 7795.6, 9954.4))))
-
-            val aaYAxisLabels = AALabels()
-                .style(
-                    AAStyle()
-                    .fontSize(10f)
-                    .fontWeight(AAChartFontWeightType.Bold)
-                    .color(AAColor.grayColor())
-                )
-                .formatter("""
-function () {
-        var yValue = this.value;
-        if (yValue == 0) {
-            return "0";
-        } else if (yValue == 2500) {
-            return "25%";
-        } else if (yValue == 5000) {
-            return "50%";
-        } else if (yValue == 7500) {
-            return "75%";
-        } else if (yValue == 10000) {
-            return "100%";
-        }
-    }
-                """.trimIndent()
-                )
-
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.yAxis!!
-                .opposite(true)
-                .tickWidth(2f)
-                .lineWidth(1.5f)//Y轴轴线颜色
-                .lineColor(AAColor.lightGrayColor())//Y轴轴线颜色
-                .gridLineWidth(0f)//Y轴网格线宽度
-                .tickPositions(arrayOf(0, 2500, 5000, 7500, 10000))
-                .labels(aaYAxisLabels)
-
-            return aaOptions
-        }
-
-         fun customStackedAndGroupedColumnChartTooltip():AAOptions {
-            val aaChartModel = AAChartModel()
-                .title("Total fruit consumption, grouped by gender")
-                .subtitle("stacked and grouped")
-                .yAxisTitle("Number of fruits")
-                .chartType(AAChartType.Column)
-                .legendEnabled(false)//隐藏图例(底部可点按的小圆点)
-                .stacking(AAChartStackingType.Normal)
-                .categories(arrayOf("Apples", "Oranges", "Pears", "Grapes", "Bananas"))
-                .dataLabelsEnabled(true)
-                .series(arrayOf(
-                    AASeriesElement()
-                    .name("John")
-                    .data(arrayOf(5, 3, 4, 7, 2))
-                    .stack("male"),
-                    AASeriesElement()
-                    .name("Joe")
-                    .data(arrayOf(3, 4, 4, 2, 5))
-                    .stack("male"),
-                    AASeriesElement()
-                    .name("Jane")
-                    .data(arrayOf(2, 5, 6, 2, 1))
-                    .stack("female"),
-                    AASeriesElement()
-                    .name("Janet")
-                    .data(arrayOf(3, 0, 4, 4, 3))
-                    .stack("female"))
-                )
-
-            /*Custom Tooltip Style --- 自定义图表浮动提示框样式及内容*/
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.tooltip
-                ?.shared(false)
-                ?.formatter("""
-function () {
-                return '<b>'
-                + this.x
-                + '</b><br/>'
-                + this.series.name
-                + ': '
-                + this.y
-                + '<br/>'
-                + 'Total: '
-                + this.point.stackTotal;
-     }
-                """.trimIndent()
-                )
-
-            return aaOptions
-        }
-
-         fun customDoubleXAxesChart():AAOptions {
-            val gradientColorDic1 = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToTop,
-                "#7052f4",
-                "#00b0ff"//颜色字符串设置支持十六进制类型和 rgba 类型
-            )
-
-            val gradientColorDic2 = AAGradientColor.linearGradient(
-                AALinearGradientDirection.ToTop,
-                "#EF71FF",
-                "#4740C8"//颜色字符串设置支持十六进制类型和 rgba 类型
-            )
-
-            val aaChart = AAChart()
-                .type(AAChartType.Bar)
-
-            val aaTitle = AATitle()
-                .text("2015 年德国人口金字塔")
-                .style(AAStyle()
-                    .color("#000000")
-                    .fontSize(12.0f))
-
-            val aaCategories = arrayOf("0-4", "5-9", "10-14", "15-19", "20-24", "25-29",
-                "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74",
-                "75-79", "80-84", "85-89", "90-94", "95-99", "100 + ")
-
-            val aaXAxis1 = AAXAxis()
-                .reversed(true)
-                .categories(aaCategories)
-                .labels(AALabels()
-                    .step(1))
-
-            val aaXAxis2 = AAXAxis()
-                .reversed(true)
-                .opposite(true)
-                .categories(aaCategories)
-                .linkedTo(0)
-                .labels(AALabels()
-                    .step(1))
-
-            val aaYAxis = AAYAxis()
-                .gridLineWidth(0f)// Y 轴网格线宽度
-                .title(AATitle()
-                    .text(""))//Y 轴标题
-                .labels(AALabels()
-                    .formatter("""
-function () {
-    return (Math.abs(this.value) / 1000000) + 'M';
-}
-                    """.trimIndent()
-                    ))
-                .min(-4000000f)
-                .max(4000000f)
-
-            val aaPlotOptions = AAPlotOptions()
-                .series(AASeries()
-                    .animation(AAAnimation()
-                        .duration(800)
-                        .easing(AAChartAnimationType.Bounce)
-                    )
-                    .stacking(AAChartStackingType.Normal))
-
-            val aaTooltip = AATooltip()
-                .enabled(true)
-                .shared(false)
-                .formatter("""
-function () {
-    return '<b>' + this.series.name + ', age ' + this.point.category + '</b><br/>' +
-        '人口: ' + Highcharts.numberFormat(Math.abs(this.point.y), 0);
-}
-                """.trimIndent()
-                )
-
-            val aaSeriesElement1 = AASeriesElement()
-                .name("Men")
-                .color(gradientColorDic1)
-                .data(arrayOf(-1746181, -1884428, -2089758, -2222362, -2537431, -2507081, -2443179,
-                    -2664537, -3556505, -3680231, -3143062, -2721122, -2229181, -2227768, -2176300,
-                    -1329968, -836804, -354784, -90569, -28367, -3878))
-
-            val aaSeriesElement2 = AASeriesElement()
-                .name("Women")
-                .color(gradientColorDic2)
-                .data(arrayOf(1656154, 1787564, 1981671, 2108575, 2403438, 2366003, 2301402, 2519874,
-                    3360596, 3493473, 3050775, 2759560, 2304444, 2426504, 2568938, 1785638, 1447162,
-                    1005011, 330870, 130632, 21208))
-
-            return AAOptions()
-                .chart(aaChart)
-                .title(aaTitle)
-                .xAxisArray(arrayOf(aaXAxis1, aaXAxis2))
-                .yAxis(aaYAxis)
-                .plotOptions(aaPlotOptions)
-                .tooltip(aaTooltip)
-                .series(arrayOf(aaSeriesElement1, aaSeriesElement2))
-        }
-
-         fun customArearangeChartTooltip():AAOptions {
-          val aaChartModel =  AAChartModel()
-                .chartType(AAChartType.Areasplinerange)
-                .title("Area spline range chart")
-                .subtitle("virtual data")
-                .yAxisTitle("℃")
-                .series(arrayOf(
-                    AASeriesElement()
-                        .name("2020")
-                        .data(arrayOf(
-                            /* 2014-06-01 */
-                            arrayOf(140158080, 5.1,  20.6),
-                            arrayOf(140166720, 6.6,  24.6),
-                            arrayOf(140175360, 9.7,  22.2),
-                            arrayOf(140184000, 9.6,  21.6),
-                            arrayOf(140192640, 13.0, 20.0),
-                            arrayOf(140201280, 12.9, 18.2),
-                            arrayOf(140209920, 8.5,  23.2),
-                            arrayOf(140218560, 9.2,  21.4),
-                            arrayOf(140227200, 10.5, 22.0),
-                            arrayOf(140235840, 7.3,  23.4),
-                            arrayOf(140244480, 12.1, 18.2),
-                            arrayOf(140253120, 11.1, 13.3),
-                            arrayOf(140261760, 10.0, 20.7),
-                            arrayOf(140270400, 5.8,  23.4),
-                            arrayOf(140279040, 7.4,  20.1),
-                            arrayOf(140287680, 10.3, 21.9),
-                            arrayOf(140296320, 7.8,  16.8),
-                            arrayOf(140304960, 11.6, 19.7),
-                            arrayOf(140313600, 9.8,  16.0),
-                            arrayOf(140322240, 10.7, 14.4),
-                            arrayOf(140330880, 9.0,  15.5),
-                            arrayOf(140339520, 5.1,  13.3),
-                            arrayOf(140348160, 10.0, 19.3),
-                            arrayOf(140356800, 5.2,  22.1),
-                            arrayOf(140365440, 6.3,  21.3),
-                            arrayOf(140374080, 5.5,  21.1),
-                            arrayOf(140382720, 8.4,  19.7),
-                            arrayOf(140391360, 7.1,  23.3),
-                            arrayOf(140400000, 6.1,  20.8),
-                            arrayOf(140408640, 8.4,  22.6)
-                        )
-                        ))
-                )
-             val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-
-             aaOptions.tooltip!!
-                 .useHTML(true)
-                 .formatter("""
-function () {
-            var myPointOptions = this.points[0].point.options;
-            var xValue = myPointOptions.x;
-            var lowValue = myPointOptions.low;
-            var highValue = myPointOptions.high;
-            var titleStr = '🌕 this is my custom tooltip description text content <br>';
-            var xValueStr = '🌖 this is x value  : ' + xValue + '<br>';
-            var lowValueStr = ' 🌗 this is low value  : ' + lowValue + '<br>';
-            var highValueStr = '🌘 this is high value : ' + highValue + '<br>';
-            var tooltipDescStr =  titleStr + xValueStr + lowValueStr + highValueStr;
-            return tooltipDescStr;
-        }
-                 """.trimIndent()
-                 )
-                 .backgroundColor("#000000")
-                 .borderColor("#000000")
-                 .style(AAStyle()
-                         .color("#FFD700")
-                         .fontSize(12f)
-                 )
-
-             return aaOptions
-         }
-
-        fun customLineChartOriginalPointPositionByConfiguringXAxisFormatterAndTooltipFormatter(): AAOptions {
-            val categories = arrayOf(
-                "Jan", "Feb", "Mar", "Apr", "May", "Jun","Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
-            )
-            val categoryJSArrStr = javaScriptArrayStringWithJavaArray(categories as Array<Any>)!!
-
-            var tooltipFormatter = """
-function () {
-        return  'The value for <b>' + $categoryJSArrStr[this.x] +
-        '</b> is <b>' + this.y + '</b> ' + "℃";
-        }
-            """.trimIndent()
-
-            var xAxisLabelsFormatter = """
-function () {
-        return $categoryJSArrStr[this.value];
-        }
-            """.trimIndent()
-
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Area)
-                .title("THE HEAT OF PROGRAMMING LANGUAGE")
-                .subtitle("Virtual Data")
-                .dataLabelsEnabled(false)
-                .yAxisGridLineWidth(0f)
-                .touchEventEnabled(true)
-                .series(arrayOf(
-                    AASeriesElement()
-                        .name("Tokyo")
-                        .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6)),
-                    AASeriesElement()
-                        .name("NewYork")
-                        .data(arrayOf(0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5)),
-                    AASeriesElement()
-                        .name("London")
-                        .data(arrayOf(0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0)),
-                    AASeriesElement()
-                        .name("Berlin")
-                        .data(arrayOf(3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8))
-                ))
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.tooltip
-                ?.useHTML(true)
-                ?.formatter(tooltipFormatter)
-            aaOptions.xAxis?.labels
-                ?.formatter(xAxisLabelsFormatter)
-            return aaOptions
-        }
-
-        fun customTooltipWhichDataSourceComeFromOutSideRatherThanSeries(): AAOptions {
-            val aaChartModel = AAChartModel()
-                .chartType(AAChartType.Column) //图表类型
-                .title("")
-                .yAxisTitle("") //设置 Y 轴标题
-                .yAxisLineWidth(1f) //Y轴轴线线宽为0即是隐藏Y轴轴线
-                .yAxisGridLineWidth(1f) //y轴横向分割线宽度为1(为0即是隐藏分割线)
-                .xAxisGridLineWidth(1f) //x轴横向分割线宽度为1(为0即是隐藏分割线)
-                .colorsTheme(arrayOf("#FFD700" /*纯金色*/))
-                .categories(arrayOf(
-                        "一月", "二月", "三月", "四月", "五月", "六月",
-                        "七月", "八月", "九月", "十月", "十一月", "十二月"
-                    )
-                )
-                .yAxisMax(110f)
-                .series(arrayOf(
-                        AASeriesElement()
-                            .name("2017")
-                            .data(arrayOf(55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55)
-                            )
-                    )
-                )
-
-            val 看近时长数组 = arrayOf<Any>(70, 69, 95, 14, 18, 21, 25, 26, 23, 18, 13, 96)
-            val 看中时长数组 = arrayOf<Any>(20, 80, 57, 11, 17, 22, 24, 24, 20, 14, 86, 25)
-            val 看远时长数组 = arrayOf<Any>(90, 60, 35, 84, 13, 17, 18, 17, 14, 90, 39, 10)
-            val 总时长数组 = arrayOfNulls<Any>(12)
-            for (i in 0..11) {
-                val 单个总时长= (看近时长数组[i] as Int
-                        + 看中时长数组[i] as Int
-                        + 看远时长数组[i] as Int)
-                总时长数组[i] = 单个总时长
-            }
-            val 有效时长数组 =
-                arrayOf<Any>(39, 42, 57, 85, 19, 15, 17, 16, 14, 13, 66, 48)
-            val 切换次数数组 = arrayOf<Any>(
-                randomNumber(), randomNumber(), randomNumber(),
-                randomNumber(), randomNumber(), randomNumber(),
-                randomNumber(), randomNumber(), randomNumber(),
-                randomNumber(), randomNumber(), randomNumber()
-            )
-            val 停止次数数组 = arrayOf<Any>(
-                randomNumber(), randomNumber(), randomNumber(),
-                randomNumber(), randomNumber(), randomNumber(),
-                randomNumber(), randomNumber(), randomNumber(),
-                randomNumber(), randomNumber(), randomNumber()
-            )
-            val 干预次数数组 = arrayOf<Any>(
-                randomNumber(), randomNumber(), randomNumber(),
-                randomNumber(), randomNumber(), randomNumber(),
-                randomNumber(), randomNumber(), randomNumber(),
-                randomNumber(), randomNumber(), randomNumber()
-            )
-            val 总时长JS数组 = javaScriptArrayStringWithJavaArray(总时长数组 as Array<Any>)
-            val 有效时长JS数组 = javaScriptArrayStringWithJavaArray(有效时长数组)
-            val 看近时长JS数组 = javaScriptArrayStringWithJavaArray(看近时长数组)
-            val 看中时长JS数组 = javaScriptArrayStringWithJavaArray(看中时长数组)
-            val 看远时长JS数组 = javaScriptArrayStringWithJavaArray(看远时长数组)
-            val 切换次数JS数组 = javaScriptArrayStringWithJavaArray(切换次数数组)
-            val 停止次数JS数组 = javaScriptArrayStringWithJavaArray(停止次数数组)
-            val 干预次数JS数组 = javaScriptArrayStringWithJavaArray(干预次数数组)
-
-            var jsFormatterStr: String? = """
-function () {
-        let 总时长数组 = $总时长JS数组;
-        let 有效时长数组 = $有效时长JS数组;
-        let 看近时长数组 = $看近时长JS数组;
-        let 看中时长数组 = $看中时长JS数组;
-        let 看远时长数组 = $看远时长JS数组;
-        let 切换次数数组 = $切换次数JS数组;
-        let 停止次数数组 = $停止次数JS数组;
-        let 干预次数数组 = $干预次数JS数组;
-        let 时间单位后缀 = "min<br/>";
-        let 频率单位后缀 = "次<br/>";
-        
-        let 单个总时长字符串 = "总时长: &nbsp &nbsp" + 总时长数组[this.point.index] + 时间单位后缀;
-        let 单个有效时长字符串 = "有效时长: &nbsp" + 有效时长数组[this.point.index] + 时间单位后缀;
-        let 单个看近时长字符串 = "看近时长: &nbsp" + 看近时长数组[this.point.index] + 时间单位后缀;
-        let 单个看中时长字符串 = "看中时长: &nbsp" + 看中时长数组[this.point.index] + 时间单位后缀;
-        let 单个看远时长字符串 = "看远时长: &nbsp" + 看远时长数组[this.point.index] + 时间单位后缀;
-        let 单个切换次数字符串 = "切换次数: &nbsp" + 切换次数数组[this.point.index] + 频率单位后缀;
-        let 单个停止次数字符串 = "停止次数: &nbsp" + 停止次数数组[this.point.index] + 频率单位后缀;
-        let 单个干预次数字符串 = "干预次数: &nbsp" + 干预次数数组[this.point.index] + 频率单位后缀;
-        
-        let wholeContentString =  单个总时长字符串 + 单个有效时长字符串 + 单个看近时长字符串 + 单个看中时长字符串 + 单个看远时长字符串 + 单个切换次数字符串 + 单个停止次数字符串 + 单个干预次数字符串;
-        
-        return wholeContentString;
-        }
-            """.trimIndent()
-
-            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
-            aaOptions.tooltip!!
-                //‼️以 this.point.index 这种方式获取选中的点的索引必须设置 tooltip 的 shared 为 false
-                //‼️共享时是 this.points (由多个 point 组成的 points 数组)
-                //‼️非共享时是 this.point 单个 point 对象
-                .shared(false)
-                .useHTML(true)
-                .formatter(jsFormatterStr!!)
-                .backgroundColor("#000000") //黑色背景色
-                .borderColor("#FFD700") //边缘颜色纯金色
-                .style(AAStyle()
-                        .color("#FFD700") //文字颜色纯金色
-                        .fontSize(12f)
-                )
-            return aaOptions
-        }
-
-
-        private fun randomNumber(): Int {
-            val max = 38
-            val min = 1
-            return (Math.random() * (max - min) + min).toInt()
-        }
-
-        private fun javaScriptArrayStringWithJavaArray(javaArray: Array<Any>): String {
-            var originalJsArrStr = ""
-            for (i in javaArray!!.indices) {
-                val element = javaArray[i]
-                originalJsArrStr = "$originalJsArrStr'$element',"
-            }
-            return "[$originalJsArrStr]"
-        }
-
-    }
-}

+ 0 - 741
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/MixedChartComposer.kt

@@ -1,741 +0,0 @@
-/**
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- */
-
-/**
-
- * -------------------------------------------------------------------------------
- *
- *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
- *
- * Please contact me on GitHub,if there are any problems encountered in use.
- * GitHub Issues : https://github.com/AAChartModel/AAChartCore-Kotlin/issues
- * -------------------------------------------------------------------------------
- * And if you want to contribute for this project, please contact me as well
- * GitHub        : https://github.com/AAChartModel
- * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
- * JianShu       : http://www.jianshu.com/u/f1e6753d4254
- * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
- *
- * -------------------------------------------------------------------------------
-
- */
-package com.aachartmodel.aainfographics.ChartsDemo.ChartComposer
-
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.*
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AADataLabels
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAMarker
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAPie
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAStyle
-import java.util.*
-
-class MixedChartComposer {
-companion object {
-    internal fun arearangeMixedLine(): AAChartModel {
-        return AAChartModel()
-            .title("LANGUAGE MARKET SHARES JANUARY,2020 TO MAY")
-            .subtitle("virtual data")
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Temperature")
-                    .color("#1E90FF")
-                    .type(AAChartType.Line)
-                    .data(arrayOf(
-                        arrayOf(12464064, 21.5),
-                        arrayOf(12464928, 22.1),
-                        arrayOf(12465792, 23.0),
-                        arrayOf(12466656, 23.8),
-                        arrayOf(12467520, 21.4),
-                        arrayOf(12468384, 21.3),
-                        arrayOf(12469248, 18.3),
-                        arrayOf(12470112, 15.4),
-                        arrayOf(12470976, 16.4),
-                        arrayOf(12471840, 17.7),
-                        arrayOf(12472704, 17.5),
-                        arrayOf(12473568, 17.6),
-                        arrayOf(12474432, 17.7),
-                        arrayOf(12475296, 16.8),
-                        arrayOf(12476160, 17.7),
-                        arrayOf(12477024, 16.3),
-                        arrayOf(12477888, 17.8),
-                        arrayOf(12478752, 18.1),
-                        arrayOf(12479616, 17.2),
-                        arrayOf(12480480, 14.4),
-                        arrayOf(12481344, 13.7),
-                        arrayOf(12482208, 15.7),
-                        arrayOf(12483072, 14.6),
-                        arrayOf(12483936, 15.3),
-                        arrayOf(12484800, 15.3),
-                        arrayOf(12485664, 15.8),
-                        arrayOf(12486528, 15.2),
-                        arrayOf(12487392, 14.8),
-                        arrayOf(12488256, 14.4),
-                        arrayOf(12489120, 15.0),
-                        arrayOf(12489984, 13.6)
-                    )
-                    )
-                    .zIndex(1),
-                AASeriesElement()
-                    .name("Range")
-                    .color("#1E90FF")
-                    .type(AAChartType.Arearange)
-                    .lineWidth(0f)
-                    .fillOpacity(0.3f)
-                    .data(arrayOf(
-                        arrayOf(12464064, 14.3, 27.7),
-                        arrayOf(12464928, 14.5, 27.8),
-                        arrayOf(12465792, 15.5, 29.6),
-                        arrayOf(12466656, 16.7, 30.7),
-                        arrayOf(12467520, 16.5, 25.0),
-                        arrayOf(12468384, 17.8, 25.7),
-                        arrayOf(12469248, 13.5, 24.8),
-                        arrayOf(12470112, 10.5, 21.4),
-                        arrayOf(12470976, 9.20, 23.8),
-                        arrayOf(12471840, 11.6, 21.8),
-                        arrayOf(12472704, 10.7, 23.7),
-                        arrayOf(12473568, 11.0, 23.3),
-                        arrayOf(12474432, 11.6, 23.7),
-                        arrayOf(12475296, 11.8, 20.7),
-                        arrayOf(12476160, 12.6, 22.4),
-                        arrayOf(12477024, 13.6, 19.6),
-                        arrayOf(12477888, 11.4, 22.6),
-                        arrayOf(12478752, 13.2, 25.0),
-                        arrayOf(12479616, 14.2, 21.6),
-                        arrayOf(12480480, 13.1, 17.1),
-                        arrayOf(12481344, 12.2, 15.5),
-                        arrayOf(12482208, 12.0, 20.8),
-                        arrayOf(12483072, 12.0, 17.1),
-                        arrayOf(12483936, 12.7, 18.3),
-                        arrayOf(12484800, 12.4, 19.4),
-                        arrayOf(12485664, 12.6, 19.9),
-                        arrayOf(12486528, 11.9, 20.2),
-                        arrayOf(12487392, 11.0, 19.3),
-                        arrayOf(12488256, 10.8, 17.8),
-                        arrayOf(12489120, 11.8, 18.5),
-                        arrayOf(12489984, 10.8, 16.1)
-                    )
-                    )
-                    .zIndex(0)
-            )
-            )
-    }
-
-    fun configureColumnrangeMixedLineChart(): AAChartModel {
-        return AAChartModel()
-            .colorsTheme(arrayOf("#1e90ff", "#EA007B", "#49C1B6", "#FDC20A", "#F78320", "#068E81"))//主题颜色数组
-            .title("")//图形标题
-            .subtitle("")//图形副标题
-            .chartType(AAChartType.Line)
-            .dataLabelsEnabled(false)
-            .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Temperature")
-                    .type(AAChartType.Columnrange)  //COLUMN_RANGE
-                    .data(arrayOf(
-                        arrayOf(-9.7,  9.4),
-                        arrayOf(-8.7,  6.5),
-                        arrayOf(-3.5,  9.4),
-                        arrayOf(-1.4, 19.9),
-                        arrayOf(0.0,  22.6),
-                        arrayOf(2.9,  29.5),
-                        arrayOf(9.2,  30.7),
-                        arrayOf(7.3,  26.5),
-                        arrayOf(4.4,  18.0),
-                        arrayOf(-3.1, 11.4),
-                        arrayOf(-5.2, 10.4),
-                        arrayOf(-9.9, 16.8)
-                    )
-                    ),
-                AASeriesElement()
-                    .name("Tokyo")
-                    .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6)),
-                AASeriesElement()
-                    .name("New York")
-                    .data(arrayOf(0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5)),
-                AASeriesElement()
-                    .name("Berlin")
-                    .data(arrayOf(0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0)),
-                AASeriesElement()
-                    .name("London")
-                    .data(arrayOf(3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8))
-            )
-            )
-    }
-
-    fun configureStackingColumnMixedLineChart(): AAChartModel {
-        return AAChartModel()
-            .title("16年1月-16年11月充值客单分析")//图形标题
-            .subtitle("BY MICVS")//图形副标题
-            .chartType(AAChartType.Column)
-            .stacking(AAChartStackingType.Normal)
-            .legendEnabled(true)
-            .colorsTheme(arrayOf(
-                AAGradientColor.oceanBlueColor(),
-                AAGradientColor.sanguineColor(),
-                AAGradientColor.lusciousLimeColor()))
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("新用户")
-                    .data(arrayOf(82.89,67.54,62.07,59.43,67.02,67.09,35.66,71.78,81.61,78.85,79.12,72.30))
-                    .dataLabels(
-                        AADataLabels()
-                        .enabled(true)
-                        .style(AAStyle()
-                                .color(AAColor.redColor())
-                                .fontSize(11f))),
-                AASeriesElement()
-                    .name("老用户")
-                    .data(arrayOf(198.66,330.81,151.95,160.12,222.56,229.05,128.53,250.91,224.47,473.99,126.85,260.50))
-                    .dataLabels(
-                        AADataLabels()
-                        .enabled(true)
-                        .style(AAStyle()
-                            .color("#000000")
-                            .fontSize(11f))),
-                AASeriesElement()
-                    .name("总量")
-                    .type(AAChartType.Line)
-                    .data(arrayOf(281.55,398.35,214.02,219.55,289.57,296.14,164.18,322.69,306.08,552.84,205.97,332.79))
-                    .dataLabels(
-                        AADataLabels()
-                        .enabled(true)
-                        .style(AAStyle()
-                            .color("#000000")
-                            .fontSize(15f)
-                            .fontWeight(AAChartFontWeightType.Bold)))))
-    }
-
-    fun dashStyleTypeMixedChart(): AAChartModel {
-        return AAChartModel()
-            .chartType(AAChartType.Spline)//图形类型
-            .dataLabelsEnabled(false)//是否显示数字
-            .stacking(AAChartStackingType.Normal)
-            .markerRadius(0f)
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("SolidLine")
-                    .lineWidth(3f)
-                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
-                AASeriesElement()
-                    .name("Dash")
-                    .lineWidth(3f)
-                    .dashStyle(AAChartLineDashStyleType.Dash)
-                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
-                AASeriesElement()
-                    .name("DashDot")
-                    .lineWidth(3f)
-                    .dashStyle(AAChartLineDashStyleType.DashDot)
-                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
-                AASeriesElement()
-                    .name("LongDash")
-                    .lineWidth(3f)
-                    .dashStyle(AAChartLineDashStyleType.LongDash)
-                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
-                AASeriesElement()
-                    .name("LongDashDot")
-                    .lineWidth(3f)
-                    .dashStyle(AAChartLineDashStyleType.LongDashDot)
-                    .data(arrayOf(50, 320, 230, 370, 230, 400, 320))
-            )
-            )
-    }
-
-    fun negativeColorMixedChart(): AAChartModel {
-        return AAChartModel()
-            .dataLabelsEnabled(false)//是否显示数字
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Column")
-                    .type(AAChartType.Column)
-                    .data(arrayOf(
-                        -6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0,
-                        -6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0,
-                        -6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0
-                    )
-                    )
-                    .color("#0088FF")
-                    .negativeColor("#FF0000")
-                    .threshold(4f)//default:0
-            )
-            )
-    }
-
-    internal fun scatterMixedLine(): AAChartModel {
-        return AAChartModel()
-            .dataLabelsEnabled(false)//是否显示数字
-            .chartType(AAChartType.Scatter)
-            .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)
-            .markerSymbol(AAChartSymbolType.Circle)
-            .markerRadius(8f)
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Scatter")
-                    .data(arrayOf(
-                        arrayOf(0.067732, 3.176513),
-                        arrayOf(0.427810, 3.816464),
-                        arrayOf(0.995731, 4.550095),
-                        arrayOf(0.738336, 4.256571),
-                        arrayOf(0.981083, 4.560815),
-                        arrayOf(0.526171, 3.929515),
-                        arrayOf(0.378887, 3.526170),
-                        arrayOf(0.033859, 3.156393),
-                        arrayOf(0.132791, 3.110301),
-                        arrayOf(0.138306, 3.149813),
-                        arrayOf(0.247809, 3.476346),
-                        arrayOf(0.648270, 4.119688),
-                        arrayOf(0.731209, 4.282233),
-                        arrayOf(0.236833, 3.486582),
-                        arrayOf(0.969788, 4.655492),
-                        arrayOf(0.607492, 3.965162),
-                        arrayOf(0.358622, 3.514900),
-                        arrayOf(0.147846, 3.125947),
-                        arrayOf(0.637820, 4.094115),
-                        arrayOf(0.230372, 3.476039),
-                        arrayOf(0.070237, 3.210610),
-                        arrayOf(0.067154, 3.190612),
-                        arrayOf(0.925577, 4.631504),
-                        arrayOf(0.717733, 4.295890),
-                        arrayOf(0.015371, 3.085028),
-                        arrayOf(0.335070, 3.448080),
-                        arrayOf(0.040486, 3.167440),
-                        arrayOf(0.212575, 3.364266),
-                        arrayOf(0.617218, 3.993482),
-                        arrayOf(0.541196, 3.891471),
-                        arrayOf(0.045353, 3.143259),
-                        arrayOf(0.126762, 3.114204),
-                        arrayOf(0.556486, 3.851484),
-                        arrayOf(0.901144, 4.621899),
-                        arrayOf(0.958476, 4.580768),
-                        arrayOf(0.274561, 3.620992),
-                        arrayOf(0.394396, 3.580501),
-                        arrayOf(0.872480, 4.618706),
-                        arrayOf(0.409932, 3.676867),
-                        arrayOf(0.908969, 4.641845),
-                        arrayOf(0.166819, 3.175939),
-                        arrayOf(0.665016, 4.264980),
-                        arrayOf(0.263727, 3.558448),
-                        arrayOf(0.231214, 3.436632),
-                        arrayOf(0.552928, 3.831052),
-                        arrayOf(0.047744, 3.182853),
-                        arrayOf(0.365746, 3.498906),
-                        arrayOf(0.495002, 3.946833),
-                        arrayOf(0.493466, 3.900583),
-                        arrayOf(0.792101, 4.238522),
-                        arrayOf(0.769660, 4.233080),
-                        arrayOf(0.251821, 3.521557),
-                        arrayOf(0.181951, 3.203344),
-                        arrayOf(0.808177, 4.278105),
-                        arrayOf(0.334116, 3.555705),
-                        arrayOf(0.338630, 3.502661),
-                        arrayOf(0.452584, 3.859776),
-                        arrayOf(0.694770, 4.275956),
-                        arrayOf(0.590902, 3.916191),
-                        arrayOf(0.307928, 3.587961),
-                        arrayOf(0.148364, 3.183004),
-                        arrayOf(0.702180, 4.225236),
-                        arrayOf(0.721544, 4.231083),
-                        arrayOf(0.666886, 4.240544),
-                        arrayOf(0.124931, 3.222372),
-                        arrayOf(0.618286, 4.021445),
-                        arrayOf(0.381086, 3.567479),
-                        arrayOf(0.385643, 3.562580),
-                        arrayOf(0.777175, 4.262059),
-                        arrayOf(0.116089, 3.208813),
-                        arrayOf(0.115487, 3.169825),
-                        arrayOf(0.663510, 4.193949),
-                        arrayOf(0.254884, 3.491678),
-                        arrayOf(0.993888, 4.533306),
-                        arrayOf(0.295434, 3.550108),
-                        arrayOf(0.952523, 4.636427),
-                        arrayOf(0.307047, 3.557078),
-                        arrayOf(0.277261, 3.552874),
-                        arrayOf(0.279101, 3.494159),
-                        arrayOf(0.175724, 3.206828),
-                        arrayOf(0.156383, 3.195266),
-                        arrayOf(0.733165, 4.221292),
-                        arrayOf(0.848142, 4.413372),
-                        arrayOf(0.771184, 4.184347),
-                        arrayOf(0.429492, 3.742878),
-                        arrayOf(0.162176, 3.201878),
-                        arrayOf(0.917064, 4.648964),
-                        arrayOf(0.315044, 3.510117),
-                        arrayOf(0.201473, 3.274434),
-                        arrayOf(0.297038, 3.579622),
-                        arrayOf(0.336647, 3.489244),
-                        arrayOf(0.666109, 4.237386),
-                        arrayOf(0.583888, 3.913749),
-                        arrayOf(0.085031, 3.228990),
-                        arrayOf(0.687006, 4.286286),
-                        arrayOf(0.949655, 4.628614),
-                        arrayOf(0.189912, 3.239536),
-                        arrayOf(0.844027, 4.457997),
-                        arrayOf(0.333288, 3.513384),
-                        arrayOf(0.427035, 3.729674),
-                        arrayOf(0.466369, 3.834274),
-                        arrayOf(0.550659, 3.811155),
-                        arrayOf(0.278213, 3.598316),
-                        arrayOf(0.918769, 4.692514),
-                        arrayOf(0.886555, 4.604859),
-                        arrayOf(0.569488, 3.864912),
-                        arrayOf(0.066379, 3.184236),
-                        arrayOf(0.335751, 3.500796),
-                        arrayOf(0.426863, 3.743365),
-                        arrayOf(0.395746, 3.622905),
-                        arrayOf(0.694221, 4.310796),
-                        arrayOf(0.272760, 3.583357),
-                        arrayOf(0.503495, 3.901852),
-                        arrayOf(0.067119, 3.233521),
-                        arrayOf(0.038326, 3.105266),
-                        arrayOf(0.599122, 3.865544),
-                        arrayOf(0.947054, 4.628625),
-                        arrayOf(0.671279, 4.231213),
-                        arrayOf(0.434811, 3.791149),
-                        arrayOf(0.509381, 3.968271),
-                        arrayOf(0.749442, 4.253910),
-                        arrayOf(0.058014, 3.194710),
-                        arrayOf(0.482978, 3.996503),
-                        arrayOf(0.466776, 3.904358),
-                        arrayOf(0.357767, 3.503976),
-                        arrayOf(0.949123, 4.557545),
-                        arrayOf(0.417320, 3.699876),
-                        arrayOf(0.920461, 4.613614),
-                        arrayOf(0.156433, 3.140401),
-                        arrayOf(0.656662, 4.206717),
-                        arrayOf(0.616418, 3.969524),
-                        arrayOf(0.853428, 4.476096),
-                        arrayOf(0.133295, 3.136528),
-                        arrayOf(0.693007, 4.279071),
-                        arrayOf(0.178449, 3.200603),
-                        arrayOf(0.199526, 3.299012),
-                        arrayOf(0.073224, 3.209873),
-                        arrayOf(0.286515, 3.632942),
-                        arrayOf(0.182026, 3.248361),
-                        arrayOf(0.621523, 3.995783),
-                        arrayOf(0.344584, 3.563262),
-                        arrayOf(0.398556, 3.649712),
-                        arrayOf(0.480369, 3.951845),
-                        arrayOf(0.153350, 3.145031),
-                        arrayOf(0.171846, 3.181577),
-                        arrayOf(0.867082, 4.637087),
-                        arrayOf(0.223855, 3.404964),
-                        arrayOf(0.528301, 3.873188),
-                        arrayOf(0.890192, 4.633648),
-                        arrayOf(0.106352, 3.154768),
-                        arrayOf(0.917886, 4.623637),
-                        arrayOf(0.014855, 3.078132),
-                        arrayOf(0.567682, 3.913596),
-                        arrayOf(0.068854, 3.221817),
-                        arrayOf(0.603535, 3.938071),
-                        arrayOf(0.532050, 3.880822),
-                        arrayOf(0.651362, 4.176436),
-                        arrayOf(0.901225, 4.648161),
-                        arrayOf(0.204337, 3.332312),
-                        arrayOf(0.696081, 4.240614),
-                        arrayOf(0.963924, 4.532224),
-                        arrayOf(0.981390, 4.557105),
-                        arrayOf(0.987911, 4.610072),
-                        arrayOf(0.990947, 4.636569),
-                        arrayOf(0.736021, 4.229813),
-                        arrayOf(0.253574, 3.500860),
-                        arrayOf(0.674722, 4.245514),
-                        arrayOf(0.939368, 4.605182),
-                        arrayOf(0.235419, 3.454340),
-                        arrayOf(0.110521, 3.180775),
-                        arrayOf(0.218023, 3.380820),
-                        arrayOf(0.869778, 4.565020),
-                        arrayOf(0.196830, 3.279973),
-                        arrayOf(0.958178, 4.554241),
-                        arrayOf(0.972673, 4.633520),
-                        arrayOf(0.745797, 4.281037),
-                        arrayOf(0.445674, 3.844426),
-                        arrayOf(0.470557, 3.891601),
-                        arrayOf(0.549236, 3.849728),
-                        arrayOf(0.335691, 3.492215),
-                        arrayOf(0.884739, 4.592374),
-                        arrayOf(0.918916, 4.632025),
-                        arrayOf(0.441815, 3.756750),
-                        arrayOf(0.116598, 3.133555),
-                        arrayOf(0.359274, 3.567919),
-                        arrayOf(0.814811, 4.363382),
-                        arrayOf(0.387125, 3.560165),
-                        arrayOf(0.982243, 4.564305),
-                        arrayOf(0.780880, 4.215055),
-                        arrayOf(0.652565, 4.174999),
-                        arrayOf(0.870030, 4.586640),
-                        arrayOf(0.604755, 3.960008),
-                        arrayOf(0.255212, 3.529963),
-                        arrayOf(0.730546, 4.213412),
-                        arrayOf(0.493829, 3.908685),
-                        arrayOf(0.257017, 3.585821),
-                        arrayOf(0.833735, 4.374394),
-                        arrayOf(0.070095, 3.213817),
-                        arrayOf(0.527070, 3.952681),
-                        arrayOf(0.116163, 3.129283)
-                    )
-                    )
-                    .color("#0088FF"),
-                AASeriesElement()
-                    .name("线性回归线")
-                    .type(AAChartType.Line)
-                    .data(arrayOf(
-                            arrayOf(0.014, 3.078),
-                            arrayOf(0.969, 4.655)))
-                    .color("#FF0000")
-            )
-            )
-    }
-
-
-    internal fun negativeColorMixedBubble(): AAChartModel {
-        return AAChartModel()
-            .categories(arrayOf("Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday"))
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Bubble")
-                    .type(AAChartType.Bubble)
-                    .data(arrayOf(
-                        arrayOf(0,0,5),arrayOf(0,1,1),arrayOf(0,2,0),arrayOf(0,3,0),arrayOf(0,4,0),arrayOf(0,5,0),arrayOf(0,6,0),arrayOf(0,7,0),arrayOf(0,8,0),arrayOf(0,9,0),
-                        arrayOf(0,10,0),arrayOf(0,11,2),arrayOf(0,12,4),arrayOf(0,13,1),arrayOf(0,14,1),arrayOf(0,15,3),arrayOf(0,16,4),arrayOf(0,17,6),arrayOf(0,18,4),
-                        arrayOf(0,19,4),arrayOf(0,20,3),arrayOf(0,21,3),arrayOf(0,22,2),arrayOf(0,23,5),arrayOf(1,0,7),arrayOf(1,1,0),arrayOf(1,2,0),arrayOf(1,3,0),
-                        arrayOf(1,4,0),arrayOf(1,5,0),arrayOf(1,6,0),arrayOf(1,7,0),arrayOf(1,8,0),arrayOf(1,9,0),arrayOf(1,10,5),arrayOf(1,11,2),arrayOf(1,12,2),
-                        arrayOf(1,13,6),arrayOf(1,14,9),arrayOf(1,15,11),arrayOf(1,16,6),arrayOf(1,17,7),arrayOf(1,18,8),arrayOf(1,19,12),arrayOf(1,20,5),arrayOf(1,21,5),
-                        arrayOf(1,22,7),arrayOf(1,23,2),arrayOf(2,0,1),arrayOf(2,1,1),arrayOf(2,2,0),arrayOf(2,3,0),arrayOf(2,4,0),arrayOf(2,5,0),arrayOf(2,6,0),arrayOf(2,7,0),
-                        arrayOf(2,8,0),arrayOf(2,9,0),arrayOf(2,10,3),arrayOf(2,11,2),arrayOf(2,12,1),arrayOf(2,13,9),arrayOf(2,14,8),arrayOf(2,15,10),arrayOf(2,16,6),
-                        arrayOf(2,17,5),arrayOf(2,18,5),arrayOf(2,19,5),arrayOf(2,20,7),arrayOf(2,21,4),arrayOf(2,22,2),arrayOf(2,23,4),arrayOf(3,0,7),arrayOf(3,1,3),
-                        arrayOf(3,2,0),arrayOf(3,3,0),arrayOf(3,4,0),arrayOf(3,5,0),arrayOf(3,6,0),arrayOf(3,7,0),arrayOf(3,8,1),arrayOf(3,9,0),arrayOf(3,10,5),arrayOf(3,11,4),
-                        arrayOf(3,12,7),arrayOf(3,13,14),arrayOf(3,14,13),arrayOf(3,15,12),arrayOf(3,16,9),arrayOf(3,17,5),arrayOf(3,18,5),arrayOf(3,19,10),
-                        arrayOf(3,20,6),arrayOf(3,21,4),arrayOf(3,22,4),arrayOf(3,23,1),arrayOf(4,0,1),arrayOf(4,1,3),arrayOf(4,2,0),arrayOf(4,3,0),arrayOf(4,4,0),
-                        arrayOf(4,5,1),arrayOf(4,6,0),arrayOf(4,7,0),arrayOf(4,8,0),arrayOf(4,9,2),arrayOf(4,10,4),arrayOf(4,11,4),arrayOf(4,12,2),arrayOf(4,13,4),
-                        arrayOf(4,14,4),arrayOf(4,15,14),arrayOf(4,16,12),arrayOf(4,17,1),arrayOf(4,18,8),arrayOf(4,19,5),arrayOf(4,20,3),arrayOf(4,21,7),arrayOf(4,22,3),
-                        arrayOf(4,23,0),arrayOf(5,0,2),arrayOf(5,1,1),arrayOf(5,2,0),arrayOf(5,3,3),arrayOf(5,4,0),arrayOf(5,5,0),arrayOf(5,6,0),arrayOf(5,7,0),arrayOf(5,8,2),
-                        arrayOf(5,9,0),arrayOf(5,10,4),arrayOf(5,11,1),arrayOf(5,12,5),arrayOf(5,13,10),arrayOf(5,14,5),arrayOf(5,15,7),arrayOf(5,16,11),arrayOf(5,17,6),
-                        arrayOf(5,18,0),arrayOf(5,19,5),arrayOf(5,20,3),arrayOf(5,21,4),arrayOf(5,22,2),arrayOf(5,23,0),arrayOf(6,0,1),arrayOf(6,1,0),arrayOf(6,2,0),
-                        arrayOf(6,3,0),arrayOf(6,4,0),arrayOf(6,5,0),arrayOf(6,6,0),arrayOf(6,7,0),arrayOf(6,8,0),arrayOf(6,9,0),arrayOf(6,10,1),arrayOf(6,11,0),arrayOf(6,12,2),
-                        arrayOf(6,13,1),arrayOf(6,14,3),arrayOf(6,15,4),arrayOf(6,16,0),arrayOf(6,17,0),arrayOf(6,18,0),arrayOf(6,19,0),arrayOf(6,20,1),arrayOf(6,21,2),
-                        arrayOf(6,22,2),arrayOf(6,23,6)
-                    )
-                    )
-                    .color("#0088FF")
-                    .negativeColor("#FF0000")
-                    .threshold(4f)//default:0
-            )
-            )
-    }
-
-    internal fun polygonMixedScatter(): AAChartModel {
-        return AAChartModel()
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("目标")
-                    .type(AAChartType.Polygon)
-                    .data(arrayOf(
-                        arrayOf(153, 42), arrayOf(149, 46), arrayOf(149, 55), arrayOf(152, 60), arrayOf(159, 70), arrayOf(170, 77), arrayOf(180, 70),
-                        arrayOf(180, 60), arrayOf(173, 52), arrayOf(166, 45))),
-                AASeriesElement()
-                    .name("实际值")
-                    .type(AAChartType.Scatter)
-                    .data(arrayOf(
-                        arrayOf(161.2, 51.6), arrayOf(167.5, 59.0), arrayOf(159.5, 49.2), arrayOf(157.0, 63.0), arrayOf(155.8, 53.6),
-                        arrayOf(170.0, 59.0), arrayOf(159.1, 47.6), arrayOf(166.0, 69.8), arrayOf(176.2, 66.8), arrayOf(160.2, 75.2),
-                        arrayOf(172.5, 55.2), arrayOf(170.9, 54.2), arrayOf(172.9, 62.5), arrayOf(153.4, 42.0), arrayOf(160.0, 50.0),
-                        arrayOf(147.2, 49.8), arrayOf(168.2, 49.2), arrayOf(175.0, 73.2), arrayOf(157.0, 47.8), arrayOf(167.6, 68.8),
-                        arrayOf(159.5, 50.6), arrayOf(175.0, 82.5), arrayOf(166.8, 57.2), arrayOf(176.5, 87.8), arrayOf(170.2, 72.8),
-                        arrayOf(174.0, 54.5), arrayOf(173.0, 59.8), arrayOf(179.9, 67.3), arrayOf(170.5, 67.8), arrayOf(160.0, 47.0),
-                        arrayOf(154.4, 46.2), arrayOf(162.0, 55.0), arrayOf(176.5, 83.0), arrayOf(160.0, 54.4), arrayOf(152.0, 45.8),
-                        arrayOf(162.1, 53.6), arrayOf(170.0, 73.2), arrayOf(160.2, 52.1), arrayOf(161.3, 67.9), arrayOf(166.4, 56.6),
-                        arrayOf(168.9, 62.3), arrayOf(163.8, 58.5), arrayOf(167.6, 54.5), arrayOf(160.0, 50.2), arrayOf(161.3, 60.3),
-                        arrayOf(167.6, 58.3), arrayOf(165.1, 56.2), arrayOf(160.0, 50.2), arrayOf(170.0, 72.9), arrayOf(157.5, 59.8),
-                        arrayOf(167.6, 61.0), arrayOf(160.7, 69.1), arrayOf(163.2, 55.9), arrayOf(152.4, 46.5), arrayOf(157.5, 54.3),
-                        arrayOf(168.3, 54.8), arrayOf(180.3, 60.7), arrayOf(165.5, 60.0), arrayOf(165.0, 62.0), arrayOf(164.5, 60.3),
-                        arrayOf(156.0, 52.7), arrayOf(160.0, 74.3), arrayOf(163.0, 62.0), arrayOf(165.7, 73.1), arrayOf(161.0, 80.0),
-                        arrayOf(162.0, 54.7), arrayOf(166.0, 53.2), arrayOf(174.0, 75.7), arrayOf(172.7, 61.1), arrayOf(167.6, 55.7),
-                        arrayOf(151.1, 48.7), arrayOf(164.5, 52.3), arrayOf(163.5, 50.0), arrayOf(152.0, 59.3), arrayOf(169.0, 62.5),
-                        arrayOf(164.0, 55.7), arrayOf(161.2, 54.8), arrayOf(155.0, 45.9), arrayOf(170.0, 70.6), arrayOf(176.2, 67.2),
-                        arrayOf(170.0, 69.4), arrayOf(162.5, 58.2), arrayOf(170.3, 64.8), arrayOf(164.1, 71.6), arrayOf(169.5, 52.8),
-                        arrayOf(163.2, 59.8), arrayOf(154.5, 49.0), arrayOf(159.8, 50.0), arrayOf(173.2, 69.2), arrayOf(170.0, 55.9),
-                        arrayOf(161.4, 63.4), arrayOf(169.0, 58.2), arrayOf(166.2, 58.6), arrayOf(159.4, 45.7), arrayOf(162.5, 52.2),
-                        arrayOf(159.0, 48.6), arrayOf(162.8, 57.8), arrayOf(159.0, 55.6), arrayOf(179.8, 66.8), arrayOf(162.9, 59.4),
-                        arrayOf(161.0, 53.6), arrayOf(151.1, 73.2), arrayOf(168.2, 53.4), arrayOf(168.9, 69.0), arrayOf(173.2, 58.4),
-                        arrayOf(171.8, 56.2), arrayOf(178.0, 70.6), arrayOf(164.3, 59.8), arrayOf(163.0, 72.0), arrayOf(168.5, 65.2),
-                        arrayOf(166.8, 56.6), arrayOf(172.7, 105 ), arrayOf(163.5, 51.8), arrayOf(169.4, 63.4), arrayOf(167.8, 59.0),
-                        arrayOf(159.5, 47.6), arrayOf(167.6, 63.0), arrayOf(161.2, 55.2), arrayOf(160.0, 45.0), arrayOf(163.2, 54.0),
-                        arrayOf(162.2, 50.2), arrayOf(161.3, 60.2), arrayOf(149.5, 44.8), arrayOf(157.5, 58.8), arrayOf(163.2, 56.4),
-                        arrayOf(172.7, 62.0), arrayOf(155.0, 49.2), arrayOf(156.5, 67.2), arrayOf(164.0, 53.8), arrayOf(160.9, 54.4),
-                        arrayOf(162.8, 58.0), arrayOf(167.0, 59.8), arrayOf(160.0, 54.8), arrayOf(160.0, 43.2), arrayOf(168.9, 60.5),
-                        arrayOf(158.2, 46.4), arrayOf(156.0, 64.4), arrayOf(160.0, 48.8), arrayOf(167.1, 62.2), arrayOf(158.0, 55.5),
-                        arrayOf(167.6, 57.8), arrayOf(156.0, 54.6), arrayOf(162.1, 59.2), arrayOf(173.4, 52.7), arrayOf(159.8, 53.2),
-                        arrayOf(170.5, 64.5), arrayOf(159.2, 51.8), arrayOf(157.5, 56.0), arrayOf(161.3, 63.6), arrayOf(162.6, 63.2),
-                        arrayOf(160.0, 59.5), arrayOf(168.9, 56.8), arrayOf(165.1, 64.1), arrayOf(162.6, 50.0), arrayOf(165.1, 72.3),
-                        arrayOf(166.4, 55.0), arrayOf(160.0, 55.9), arrayOf(152.4, 60.4), arrayOf(170.2, 69.1), arrayOf(162.6, 84.5),
-                        arrayOf(170.2, 55.9), arrayOf(158.8, 55.5), arrayOf(172.7, 69.5), arrayOf(167.6, 76.4), arrayOf(162.6, 61.4),
-                        arrayOf(167.6, 65.9), arrayOf(156.2, 58.6), arrayOf(175.2, 66.8), arrayOf(172.1, 56.6), arrayOf(162.6, 58.6),
-                        arrayOf(160.0, 55.9), arrayOf(165.1, 59.1), arrayOf(182.9, 81.8), arrayOf(166.4, 70.7), arrayOf(165.1, 56.8),
-                        arrayOf(177.8, 60.0), arrayOf(165.1, 58.2), arrayOf(175.3, 72.7), arrayOf(154.9, 54.1), arrayOf(158.8, 49.1),
-                        arrayOf(172.7, 75.9), arrayOf(168.9, 55.0), arrayOf(161.3, 57.3), arrayOf(167.6, 55.0), arrayOf(165.1, 65.5),
-                        arrayOf(175.3, 65.5), arrayOf(157.5, 48.6), arrayOf(163.8, 58.6), arrayOf(167.6, 63.6), arrayOf(165.1, 55.2),
-                        arrayOf(165.1, 62.7), arrayOf(168.9, 56.6), arrayOf(162.6, 53.9), arrayOf(164.5, 63.2), arrayOf(176.5, 73.6),
-                        arrayOf(168.9, 62.0), arrayOf(175.3, 63.6), arrayOf(159.4, 53.2), arrayOf(160.0, 53.4), arrayOf(170.2, 55.0),
-                        arrayOf(162.6, 70.5), arrayOf(167.6, 54.5), arrayOf(162.6, 54.5), arrayOf(160.7, 55.9), arrayOf(160.0, 59.0),
-                        arrayOf(157.5, 63.6), arrayOf(162.6, 54.5), arrayOf(152.4, 47.3), arrayOf(170.2, 67.7), arrayOf(165.1, 80.9),
-                        arrayOf(172.7, 70.5), arrayOf(165.1, 60.9), arrayOf(170.2, 63.6), arrayOf(170.2, 54.5), arrayOf(170.2, 59.1),
-                        arrayOf(161.3, 70.5), arrayOf(167.6, 52.7), arrayOf(167.6, 62.7), arrayOf(165.1, 86.3), arrayOf(162.6, 66.4),
-                        arrayOf(152.4, 67.3), arrayOf(168.9, 63.0), arrayOf(170.2, 73.6), arrayOf(175.2, 62.3), arrayOf(175.2, 57.7),
-                        arrayOf(160.0, 55.4), arrayOf(165.1, 104 ), arrayOf(174.0, 55.5), arrayOf(170.2, 77.3), arrayOf(160.0, 80.5),
-                        arrayOf(167.6, 64.5), arrayOf(167.6, 72.3), arrayOf(167.6, 61.4), arrayOf(154.9, 58.2), arrayOf(162.6, 81.8),
-                        arrayOf(175.3, 63.6), arrayOf(171.4, 53.4), arrayOf(157.5, 54.5), arrayOf(165.1, 53.6), arrayOf(160.0, 60.0),
-                        arrayOf(174.0, 73.6), arrayOf(162.6, 61.4), arrayOf(174.0, 55.5), arrayOf(162.6, 63.6), arrayOf(161.3, 60.9),
-                        arrayOf(156.2, 60.0), arrayOf(149.9, 46.8), arrayOf(169.5, 57.3), arrayOf(160.0, 64.1), arrayOf(175.3, 63.6),
-                        arrayOf(169.5, 67.3), arrayOf(160.0, 75.5), arrayOf(172.7, 68.2), arrayOf(162.6, 61.4), arrayOf(157.5, 76.8),
-                        arrayOf(176.5, 71.8), arrayOf(164.4, 55.5), arrayOf(160.7, 48.6), arrayOf(174.0, 66.4), arrayOf(163.8, 67.3)
-                    )
-                    )
-            )
-            )
-
-    }
-
-    fun polarChartMixedChart(): AAChartModel {
-        return AAChartModel()
-            .chartType(AAChartType.Column)
-            .polar(true)
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Column")
-                    .type(AAChartType.Column)
-                    .data(arrayOf(8, 7, 6, 5, 4, 3, 2, 1)),
-                AASeriesElement()
-                    .name("Line")
-                    .type(AAChartType.Line)
-                    .data(arrayOf(1, 2, 3, 4, 5, 6, 7, 8)),
-                AASeriesElement()
-                    .name("Area")
-                    .type(AAChartType.Area)
-                    .data(arrayOf(1, 8, 2, 7, 3, 6, 4, 5))
-            )
-            )
-    }
-
-    fun configurePieMixedLineMixedColumnChart(): AAChartModel? {
-        val columnElement1 = AASeriesElement()
-            .name("Anna")
-            .type(AAChartType.Column)
-            .data(arrayOf(3, 2, 1, 3, 4))
-        val columnElement2 = AASeriesElement()
-            .name("Babara")
-            .type(AAChartType.Column)
-            .data(arrayOf(2, 3, 5, 7, 6))
-        val columnElement3 = AASeriesElement()
-            .name("Coco")
-            .type(AAChartType.Column)
-            .data(arrayOf(4, 3, 3, 9, 0))
-        val lineElement = AASeriesElement()
-            .name("average value")
-            .type(AAChartType.Line)
-            .data(arrayOf(3, 2.67, 3, 6.33, 3.33))
-            .marker(
-                AAMarker()
-                    .fillColor("#1E90FF")
-                    .lineWidth(2.0f)
-                    .lineColor(AAColor.whiteColor())
-            )
-        val pieElement = AAPie()
-            .type(AAChartType.Pie)
-            .center(arrayOf(100, 80))
-            .size(100f)
-            .showInLegend(true)
-            .dataLabels(AADataLabels()
-                    .enabled(false)
-            )
-            .data(arrayOf(
-                    AADataElement()
-                        .name("Ada")
-                        .y(13.0f)
-                        .color(AAGradientColor.oceanBlueColor())
-                    ,
-                    AADataElement()
-                        .name("Bob")
-                        .y(13.0f)
-                        .color(AAGradientColor.sanguineColor())
-                    ,
-                    AADataElement()
-                        .name("Coco")
-                        .y(13.0f)
-                        .color(AAGradientColor.purpleLakeColor())
-                )
-            )
-
-        return AAChartModel()
-            .stacking(AAChartStackingType.Normal)
-            .colorsTheme(arrayOf(
-                    AAGradientColor.oceanBlueColor(),
-                    AAGradientColor.sanguineColor(),
-                    AAGradientColor.purpleLakeColor()
-                )
-            )
-            .dataLabelsEnabled(false)
-            .series(arrayOf(
-                    columnElement1,
-                    columnElement2,
-                    columnElement3,
-                    lineElement,
-                    pieElement as AASeriesElement
-                )
-            )
-    }
-
-
-    //GitHub issue https://github.com/AAChartModel/AAChartKit/issues/921
-    private fun configureNegativeColorMixedAreasplineChart(): AAChartModel? {
-        val blueStopsArr: Array<Any> = arrayOf(
-                arrayOf(0.0, AAColor.rgbaColor(30, 144, 255, 0.0f)),
-                arrayOf(0.5, AAColor.rgbaColor(30, 144, 255, 0.0f)),
-                arrayOf(1.0, AAColor.rgbaColor(30, 144, 255, 0.6f))
-            )
-        val gradientBlueColorDic = AAGradientColor.linearGradient(
-            AALinearGradientDirection.ToTop,
-            blueStopsArr
-        )
-
-        val redStopsArr: Array<Any> = arrayOf(
-            arrayOf(0.0, AAColor.rgbaColor(255, 0, 0, 0.6f)),
-            arrayOf(0.5, AAColor.rgbaColor(255, 0, 0, 0.0f)),
-            arrayOf(1.0, AAColor.rgbaColor(255, 0, 0, 0.0f))
-        )
-        val gradientRedColorDic = AAGradientColor.linearGradient(
-            AALinearGradientDirection.ToTop,
-            redStopsArr
-        )
-
-        return AAChartModel()
-            .chartType(AAChartType.Area)
-            .legendEnabled(false)
-            .dataLabelsEnabled(false)
-            .markerRadius(5f)
-            .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)
-            .yAxisGridLineWidth(0f)
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Column")
-                    .data(arrayOf(
-                        7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6,
-                        -7.0, -6.9, -2.5, -14.5, -18.2, -21.5, -5.2, -26.5, -23.3, -45.3, -13.9, -9.6
-                    ))
-                    .lineWidth(5f)
-                    .color(AAColor.rgbaColor(30, 144, 255, 1.0f))
-                    .negativeColor(AAColor.rgbaColor(255, 0, 0, 1.0f))
-                    .fillColor(gradientBlueColorDic)
-                    .negativeFillColor(gradientRedColorDic)
-                    .threshold(0f) //default:0
-            )
-            )
-    }
-
-
-}
-}

+ 0 - 987
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/ChartComposer/SpecialChartComposer.kt

@@ -1,987 +0,0 @@
-/**
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
- * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
- * ◉◉◉...................................................       ◉◉◉
- * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
- */
-
-/**
-
- * -------------------------------------------------------------------------------
- *
- *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
- *
- * Please contact me on GitHub,if there are any problems encountered in use.
- * GitHub Issues : https://github.com/AAChartModel/AAChartCore-Kotlin/issues
- * -------------------------------------------------------------------------------
- * And if you want to contribute for this project, please contact me as well
- * GitHub        : https://github.com/AAChartModel
- * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
- * JianShu       : http://www.jianshu.com/u/f1e6753d4254
- * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
- *
- * -------------------------------------------------------------------------------
-
- */
-package com.aachartmodel.aainfographics.ChartsDemo.ChartComposer
-
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.*
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AADataLabels
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAStyle
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AATooltip
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAWaterfall
-import java.util.*
-
-object SpecialChartComposer{
-
-
-
-    fun configurePolarColumnChart(): AAChartModel  {
-        return AAChartModel()
-            .chartType(AAChartType.Column)
-            .polar(true)
-            .dataLabelsEnabled(false)
-            .categories(arrayOf(
-                "January",
-                "February",
-                "March",
-                "April",
-                "May",
-                "June",
-                "July",
-                "August",
-                "September",
-                "October",
-                "November",
-                "December"
-            )
-            )
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("2018")
-                    .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6)
-                    )
-            )
-            )
-    }
-
-    fun configurePieChart(): AAChartModel  {
-        return AAChartModel()
-            .chartType(AAChartType.Pie)
-            .backgroundColor("#ffffff")
-            .title("LANGUAGE MARKET SHARES JANUARY,2020 TO MAY")
-            .subtitle("virtual data")
-            .dataLabelsEnabled(true)//是否直接显示扇形图数据
-            .yAxisTitle("℃")
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Language market shares")
-                    .data(arrayOf(
-                        arrayOf("Java",   67),
-                        arrayOf("Swift", 999),
-                        arrayOf("Python", 83),
-                        arrayOf("OC",     11),
-                        arrayOf("Go",     30)
-                    )
-                    )
-            )
-            )
-    }
-
-    fun configureBubbleChart(): AAChartModel  {
-        return AAChartModel()
-            .chartType(AAChartType.Bubble)
-            .title("AACHARTKIT BUBBLES")
-            .subtitle("JUST FOR FUN")
-            .yAxisTitle("℃")
-            .gradientColorEnable(true)
-            .colorsTheme(arrayOf("#0c9674", "#7dffc0", "#d11b5f", "#facd32", "#ffffa0", "#EA007B"))
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("BubbleOne")
-                    .data(arrayOf(
-                        arrayOf(97, 36, 79),
-                        arrayOf(94, 74, 60),
-                        arrayOf(68, 76, 58),
-                        arrayOf(64, 87, 56),
-                        arrayOf(68, 27, 73),
-                        arrayOf(74, 99, 42),
-                        arrayOf(7 , 93, 99),
-                        arrayOf(51, 69, 40),
-                        arrayOf(38, 23, 33),
-                        arrayOf(57, 86, 31),
-                        arrayOf(33, 24, 22)
-                    )
-                    ),
-                AASeriesElement()
-                    .name("BubbleTwo")
-                    .data(arrayOf(
-                        arrayOf(25, 60, 87),
-                        arrayOf(2 , 75, 59),
-                        arrayOf(11, 54, 8 ),
-                        arrayOf(86, 55, 93),
-                        arrayOf(5 , 33, 88),
-                        arrayOf(90, 63, 44),
-                        arrayOf(91, 43, 17),
-                        arrayOf(97, 56, 56),
-                        arrayOf(15, 67, 48),
-                        arrayOf(54, 25, 81),
-                        arrayOf(55, 66, 11)
-                    )
-                    ),
-                AASeriesElement()
-                    .name("BubbleThree")
-                    .data(arrayOf(
-                        arrayOf(47, 47, 21),
-                        arrayOf(20, 12, 66),
-                        arrayOf(6 , 76, 91),
-                        arrayOf(38, 30, 60),
-                        arrayOf(57, 98, 64),
-                        arrayOf(61, 47, 80),
-                        arrayOf(83, 60, 13),
-                        arrayOf(67, 78, 75),
-                        arrayOf(64, 12, 55),
-                        arrayOf(30, 77, 82),
-                        arrayOf(88, 66, 13)
-                    )
-                    )
-            )
-            )
-    }
-
-    fun configureScatterChart(): AAChartModel {
-        val elementOne = AASeriesElement()
-            .name("Female")
-            .color("#ff0000")
-            .data( arrayOf(
-                arrayOf(161.2, 51.6), arrayOf(167.5, 59.0), arrayOf(159.5, 49.2), arrayOf(157.0, 63.0), arrayOf(155.8, 53.6),
-                arrayOf(170.0, 59.0), arrayOf(159.1, 47.6), arrayOf(166.0, 69.8), arrayOf(176.2, 66.8), arrayOf(160.2, 75.2),
-                arrayOf(172.5, 55.2), arrayOf(170.9, 54.2), arrayOf(172.9, 62.5), arrayOf(153.4, 42.0), arrayOf(160.0, 50.0),
-                arrayOf(147.2, 49.8), arrayOf(168.2, 49.2), arrayOf(175.0, 73.2), arrayOf(157.0, 47.8), arrayOf(167.6, 68.8),
-                arrayOf(159.5, 50.6), arrayOf(175.0, 82.5), arrayOf(166.8, 57.2), arrayOf(176.5, 87.8), arrayOf(170.2, 72.8),
-                arrayOf(174.0, 54.5), arrayOf(173.0, 59.8), arrayOf(179.9, 67.3), arrayOf(170.5, 67.8), arrayOf(160.0, 47.0),
-                arrayOf(154.4, 46.2), arrayOf(162.0, 55.0), arrayOf(176.5, 83.0), arrayOf(160.0, 54.4), arrayOf(152.0, 45.8),
-                arrayOf(162.1, 53.6), arrayOf(170.0, 73.2), arrayOf(160.2, 52.1), arrayOf(161.3, 67.9), arrayOf(166.4, 56.6),
-                arrayOf(168.9, 62.3), arrayOf(163.8, 58.5), arrayOf(167.6, 54.5), arrayOf(160.0, 50.2), arrayOf(161.3, 60.3),
-                arrayOf(167.6, 58.3), arrayOf(165.1, 56.2), arrayOf(160.0, 50.2), arrayOf(170.0, 72.9), arrayOf(157.5, 59.8),
-                arrayOf(167.6, 61.0), arrayOf(160.7, 69.1), arrayOf(163.2, 55.9), arrayOf(152.4, 46.5), arrayOf(157.5, 54.3),
-                arrayOf(168.3, 54.8), arrayOf(180.3, 60.7), arrayOf(165.5, 60.0), arrayOf(165.0, 62.0), arrayOf(164.5, 60.3),
-                arrayOf(156.0, 52.7), arrayOf(160.0, 74.3), arrayOf(163.0, 62.0), arrayOf(165.7, 73.1), arrayOf(161.0, 80.0),
-                arrayOf(162.0, 54.7), arrayOf(166.0, 53.2), arrayOf(174.0, 75.7), arrayOf(172.7, 61.1), arrayOf(167.6, 55.7),
-                arrayOf(151.1, 48.7), arrayOf(164.5, 52.3), arrayOf(163.5, 50.0), arrayOf(152.0, 59.3), arrayOf(169.0, 62.5),
-                arrayOf(164.0, 55.7), arrayOf(161.2, 54.8), arrayOf(155.0, 45.9), arrayOf(170.0, 70.6), arrayOf(176.2, 67.2),
-                arrayOf(170.0, 69.4), arrayOf(162.5, 58.2), arrayOf(170.3, 64.8), arrayOf(164.1, 71.6), arrayOf(169.5, 52.8),
-                arrayOf(163.2, 59.8), arrayOf(154.5, 49.0), arrayOf(159.8, 50.0), arrayOf(173.2, 69.2), arrayOf(170.0, 55.9),
-                arrayOf(161.4, 63.4), arrayOf(169.0, 58.2), arrayOf(166.2, 58.6), arrayOf(159.4, 45.7), arrayOf(162.5, 52.2),
-                arrayOf(159.0, 48.6), arrayOf(162.8, 57.8), arrayOf(159.0, 55.6), arrayOf(179.8, 66.8), arrayOf(162.9, 59.4),
-                arrayOf(161.0, 53.6), arrayOf(151.1, 73.2), arrayOf(168.2, 53.4), arrayOf(168.9, 69.0), arrayOf(173.2, 58.4),
-                arrayOf(171.8, 56.2), arrayOf(178.0, 70.6), arrayOf(164.3, 59.8), arrayOf(163.0, 72.0), arrayOf(168.5, 65.2),
-                arrayOf(166.8, 56.6), arrayOf(172.7, 88.8), arrayOf(163.5, 51.8), arrayOf(169.4, 63.4), arrayOf(167.8, 59.0),
-                arrayOf(159.5, 47.6), arrayOf(167.6, 63.0), arrayOf(161.2, 55.2), arrayOf(160.0, 45.0), arrayOf(163.2, 54.0),
-                arrayOf(162.2, 50.2), arrayOf(161.3, 60.2), arrayOf(149.5, 44.8), arrayOf(157.5, 58.8), arrayOf(163.2, 56.4),
-                arrayOf(172.7, 62.0), arrayOf(155.0, 49.2), arrayOf(156.5, 67.2), arrayOf(164.0, 53.8), arrayOf(160.9, 54.4),
-                arrayOf(162.8, 58.0), arrayOf(167.0, 59.8), arrayOf(160.0, 54.8), arrayOf(160.0, 43.2), arrayOf(168.9, 60.5),
-                arrayOf(158.2, 46.4), arrayOf(156.0, 64.4), arrayOf(160.0, 48.8), arrayOf(167.1, 62.2), arrayOf(158.0, 55.5),
-                arrayOf(167.6, 57.8), arrayOf(156.0, 54.6), arrayOf(162.1, 59.2), arrayOf(173.4, 52.7), arrayOf(159.8, 53.2),
-                arrayOf(170.5, 64.5), arrayOf(159.2, 51.8), arrayOf(157.5, 56.0), arrayOf(161.3, 63.6), arrayOf(162.6, 63.2),
-                arrayOf(160.0, 59.5), arrayOf(168.9, 56.8), arrayOf(165.1, 64.1), arrayOf(162.6, 50.0), arrayOf(165.1, 72.3),
-                arrayOf(166.4, 55.0), arrayOf(160.0, 55.9), arrayOf(152.4, 60.4), arrayOf(170.2, 69.1), arrayOf(162.6, 84.5),
-                arrayOf(170.2, 55.9), arrayOf(158.8, 55.5), arrayOf(172.7, 69.5), arrayOf(167.6, 76.4), arrayOf(162.6, 61.4),
-                arrayOf(167.6, 65.9), arrayOf(156.2, 58.6), arrayOf(175.2, 66.8), arrayOf(172.1, 56.6), arrayOf(162.6, 58.6),
-                arrayOf(160.0, 55.9), arrayOf(165.1, 59.1), arrayOf(182.9, 81.8), arrayOf(166.4, 70.7), arrayOf(165.1, 56.8),
-                arrayOf(177.8, 60.0), arrayOf(165.1, 58.2), arrayOf(175.3, 72.7), arrayOf(154.9, 54.1), arrayOf(158.8, 49.1),
-                arrayOf(172.7, 75.9), arrayOf(168.9, 55.0), arrayOf(161.3, 57.3), arrayOf(167.6, 55.0), arrayOf(165.1, 65.5),
-                arrayOf(175.3, 65.5), arrayOf(157.5, 48.6), arrayOf(163.8, 58.6), arrayOf(167.6, 63.6), arrayOf(165.1, 55.2),
-                arrayOf(165.1, 62.7), arrayOf(168.9, 56.6), arrayOf(162.6, 53.9), arrayOf(164.5, 63.2), arrayOf(176.5, 73.6),
-                arrayOf(168.9, 62.0), arrayOf(175.3, 63.6), arrayOf(159.4, 53.2), arrayOf(160.0, 53.4), arrayOf(170.2, 55.0),
-                arrayOf(162.6, 70.5), arrayOf(167.6, 54.5), arrayOf(162.6, 54.5), arrayOf(160.7, 55.9), arrayOf(160.0, 59.0),
-                arrayOf(157.5, 63.6), arrayOf(162.6, 54.5), arrayOf(152.4, 47.3), arrayOf(170.2, 67.7), arrayOf(165.1, 80.9),
-                arrayOf(172.7, 70.5), arrayOf(165.1, 60.9), arrayOf(170.2, 63.6), arrayOf(170.2, 54.5), arrayOf(170.2, 59.1),
-                arrayOf(161.3, 70.5), arrayOf(167.6, 52.7), arrayOf(167.6, 62.7), arrayOf(165.1, 86.3), arrayOf(162.6, 66.4),
-                arrayOf(152.4, 67.3), arrayOf(168.9, 63.0), arrayOf(170.2, 73.6), arrayOf(175.2, 62.3), arrayOf(175.2, 57.7),
-                arrayOf(160.0, 55.4), arrayOf(165.1, 77.7), arrayOf(174.0, 55.5), arrayOf(170.2, 77.3), arrayOf(160.0, 80.5),
-                arrayOf(167.6, 64.5), arrayOf(167.6, 72.3), arrayOf(167.6, 61.4), arrayOf(154.9, 58.2), arrayOf(162.6, 81.8),
-                arrayOf(175.3, 63.6), arrayOf(171.4, 53.4), arrayOf(157.5, 54.5), arrayOf(165.1, 53.6), arrayOf(160.0, 60.0),
-                arrayOf(174.0, 73.6), arrayOf(162.6, 61.4), arrayOf(174.0, 55.5), arrayOf(162.6, 63.6), arrayOf(161.3, 60.9),
-                arrayOf(156.2, 60.0), arrayOf(149.9, 46.8), arrayOf(169.5, 57.3), arrayOf(160.0, 64.1), arrayOf(175.3, 63.6),
-                arrayOf(169.5, 67.3), arrayOf(160.0, 75.5), arrayOf(172.7, 68.2), arrayOf(162.6, 61.4), arrayOf(157.5, 76.8),
-                arrayOf(176.5, 71.8), arrayOf(164.4, 55.5), arrayOf(160.7, 48.6), arrayOf(174.0, 66.4), arrayOf(163.8, 67.3)))
-
-
-        val elementTwo = AASeriesElement()
-            .name("Male")
-            .color("rgba(119, 152, 191, 1)")
-            .data(arrayOf(
-                arrayOf(174.0, 65.6), arrayOf(175.3, 71.8), arrayOf(193.5, 80.7), arrayOf(186.5, 72.6), arrayOf(187.2, 78.8),
-                arrayOf(181.5, 74.8), arrayOf(184.0, 86.4), arrayOf(184.5, 78.4), arrayOf(175.0, 62.0), arrayOf(184.0, 81.6),
-                arrayOf(180.0, 76.6), arrayOf(177.8, 83.6), arrayOf(192.0, 90.0), arrayOf(176.0, 74.6), arrayOf(174.0, 71.0),
-                arrayOf(184.0, 79.6), arrayOf(192.7, 93.8), arrayOf(171.5, 70.0), arrayOf(173.0, 72.4), arrayOf(176.0, 85.9),
-                arrayOf(176.0, 78.8), arrayOf(180.5, 77.8), arrayOf(172.7, 66.2), arrayOf(176.0, 86.4), arrayOf(173.5, 81.8),
-                arrayOf(178.0, 89.6), arrayOf(180.3, 82.8), arrayOf(180.3, 76.4), arrayOf(164.5, 63.2), arrayOf(173.0, 60.9),
-                arrayOf(183.5, 74.8), arrayOf(175.5, 70.0), arrayOf(188.0, 72.4), arrayOf(189.2, 84.1), arrayOf(172.8, 69.1),
-                arrayOf(170.0, 59.5), arrayOf(182.0, 67.2), arrayOf(170.0, 61.3), arrayOf(177.8, 68.6), arrayOf(184.2, 80.1),
-                arrayOf(186.7, 87.8), arrayOf(171.4, 84.7), arrayOf(172.7, 73.4), arrayOf(175.3, 72.1), arrayOf(180.3, 82.6),
-                arrayOf(182.9, 88.7), arrayOf(188.0, 84.1), arrayOf(177.2, 94.1), arrayOf(172.1, 74.9), arrayOf(167.0, 59.1),
-                arrayOf(169.5, 75.6), arrayOf(174.0, 86.2), arrayOf(172.7, 75.3), arrayOf(182.2, 87.1), arrayOf(164.1, 55.2),
-                arrayOf(163.0, 57.0), arrayOf(171.5, 61.4), arrayOf(184.2, 76.8), arrayOf(174.0, 86.8), arrayOf(174.0, 72.2),
-                arrayOf(177.0, 71.6), arrayOf(186.0, 84.8), arrayOf(167.0, 68.2), arrayOf(171.8, 66.1), arrayOf(182.0, 72.0),
-                arrayOf(167.0, 64.6), arrayOf(177.8, 74.8), arrayOf(164.5, 70.0), arrayOf(192.0, 99.9), arrayOf(175.5, 63.2),
-                arrayOf(171.2, 79.1), arrayOf(181.6, 78.9), arrayOf(167.4, 67.7), arrayOf(181.1, 66.0), arrayOf(177.0, 68.2),
-                arrayOf(174.5, 63.9), arrayOf(177.5, 72.0), arrayOf(170.5, 56.8), arrayOf(182.4, 74.5), arrayOf(197.1, 90.9),
-                arrayOf(180.1, 93.0), arrayOf(175.5, 80.9), arrayOf(180.6, 72.7), arrayOf(184.4, 68.0), arrayOf(175.5, 70.9),
-                arrayOf(180.6, 72.5), arrayOf(177.0, 72.5), arrayOf(177.1, 83.4), arrayOf(181.6, 75.5), arrayOf(176.5, 73.0),
-                arrayOf(175.0, 70.2), arrayOf(174.0, 73.4), arrayOf(165.1, 70.5), arrayOf(177.0, 68.9), arrayOf(192.0, 99.7),
-                arrayOf(176.5, 68.4), arrayOf(169.4, 65.9), arrayOf(182.1, 75.7), arrayOf(179.8, 84.5), arrayOf(175.3, 87.7),
-                arrayOf(184.9, 86.4), arrayOf(177.3, 73.2), arrayOf(167.4, 53.9), arrayOf(178.1, 72.0), arrayOf(168.9, 55.5),
-                arrayOf(157.2, 58.4), arrayOf(180.3, 83.2), arrayOf(170.2, 72.7), arrayOf(177.8, 64.1), arrayOf(172.7, 72.3),
-                arrayOf(165.1, 65.0), arrayOf(186.7, 86.4), arrayOf(165.1, 65.0), arrayOf(174.0, 88.6), arrayOf(175.3, 84.1),
-                arrayOf(185.4, 66.8), arrayOf(177.8, 75.5), arrayOf(180.3, 93.2), arrayOf(180.3, 82.7), arrayOf(177.8, 58.0),
-                arrayOf(177.8, 79.5), arrayOf(177.8, 78.6), arrayOf(177.8, 71.8), arrayOf(177.8, 88.8), arrayOf(163.8, 72.2),
-                arrayOf(188.0, 83.6), arrayOf(198.1, 85.5), arrayOf(175.3, 90.9), arrayOf(166.4, 85.9), arrayOf(190.5, 89.1),
-                arrayOf(166.4, 75.0), arrayOf(177.8, 77.7), arrayOf(179.7, 86.4), arrayOf(172.7, 90.9), arrayOf(190.5, 73.6),
-                arrayOf(185.4, 76.4), arrayOf(168.9, 69.1), arrayOf(167.6, 84.5), arrayOf(175.3, 64.5), arrayOf(170.2, 69.1),
-                arrayOf(190.5,108.6), arrayOf(177.8, 86.4), arrayOf(190.5, 80.9), arrayOf(177.8, 87.7), arrayOf(184.2, 94.5),
-                arrayOf(176.5, 80.2), arrayOf(177.8, 72.0), arrayOf(180.3, 71.4), arrayOf(171.4, 72.7), arrayOf(172.7, 84.1),
-                arrayOf(172.7, 76.8), arrayOf(177.8, 63.6), arrayOf(177.8, 80.9), arrayOf(182.9, 80.9), arrayOf(170.2, 85.5),
-                arrayOf(167.6, 68.6), arrayOf(175.3, 67.7), arrayOf(165.1, 66.4), arrayOf(185.4, 77.7), arrayOf(181.6, 70.5),
-                arrayOf(172.7, 95.9), arrayOf(190.5, 84.1), arrayOf(179.1, 87.3), arrayOf(175.3, 71.8), arrayOf(170.2, 65.9),
-                arrayOf(193.0, 95.9), arrayOf(171.4, 91.4), arrayOf(177.8, 81.8), arrayOf(177.8, 96.8), arrayOf(167.6, 69.1),
-                arrayOf(167.6, 82.7), arrayOf(180.3, 75.5), arrayOf(182.9, 79.5), arrayOf(176.5, 73.6), arrayOf(186.7, 91.8),
-                arrayOf(188.0, 84.1), arrayOf(188.0, 85.9), arrayOf(177.8, 81.8), arrayOf(174.0, 82.5), arrayOf(177.8, 80.5),
-                arrayOf(171.4, 70.0), arrayOf(185.4, 81.8), arrayOf(185.4, 84.1), arrayOf(188.0, 90.5), arrayOf(188.0, 91.4),
-                arrayOf(182.9, 89.1), arrayOf(176.5, 85.0), arrayOf(175.3, 69.1), arrayOf(175.3, 73.6), arrayOf(188.0, 80.5),
-                arrayOf(188.0, 82.7), arrayOf(175.3, 86.4), arrayOf(170.5, 67.7), arrayOf(179.1, 92.7), arrayOf(177.8, 93.6),
-                arrayOf(175.3, 70.9), arrayOf(182.9, 75.0), arrayOf(170.8, 93.2), arrayOf(188.0, 93.2), arrayOf(180.3, 77.7),
-                arrayOf(177.8, 61.4), arrayOf(185.4, 94.1), arrayOf(168.9, 75.0), arrayOf(185.4, 83.6), arrayOf(180.3, 85.5),
-                arrayOf(174.0, 73.9), arrayOf(167.6, 66.8), arrayOf(182.9, 87.3), arrayOf(160.0, 72.3), arrayOf(180.3, 88.6),
-                arrayOf(167.6, 75.5), arrayOf(186.7, 66.8), arrayOf(175.3, 91.1), arrayOf(175.3, 67.3), arrayOf(175.9, 77.7),
-                arrayOf(175.3, 81.8), arrayOf(179.1, 75.5), arrayOf(181.6, 84.5), arrayOf(177.8, 76.6), arrayOf(182.9, 85.0),
-                arrayOf(177.8, 81.8), arrayOf(184.2, 77.3), arrayOf(179.1, 71.8), arrayOf(176.5, 87.9), arrayOf(188.0, 94.3),
-                arrayOf(174.0, 70.9), arrayOf(167.6, 64.5), arrayOf(170.2, 77.3), arrayOf(167.6, 72.3), arrayOf(188.0, 87.3),
-                arrayOf(174.0, 80.0), arrayOf(176.5, 82.3), arrayOf(180.3, 73.6), arrayOf(167.6, 74.1), arrayOf(188.0, 85.9),
-                arrayOf(180.3, 73.2), arrayOf(167.6, 76.3), arrayOf(183.0, 65.9), arrayOf(183.0, 90.9), arrayOf(179.1, 89.1),
-                arrayOf(170.2, 62.3), arrayOf(177.8, 82.7), arrayOf(179.1, 79.1), arrayOf(190.5, 98.2), arrayOf(177.8, 84.1),
-                arrayOf(180.3, 83.2), arrayOf(180.3, 83.2)));
-
-        val seriesElements = arrayOf(elementOne,elementTwo)
-
-        return  AAChartModel()
-            .chartType(AAChartType.Scatter)
-            .title("Height and weight distribution by sex")
-            .yAxisTitle("kg")
-            .markerRadius(8f)
-            .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)
-            .series(seriesElements)
-    }
-
-    fun  configureArearangeChart(): AAChartModel {
-        return  AAChartModel()
-            .chartType(AAChartType.Arearange)
-            .title("Twilight Hall day temperature fluctuation map")
-            .subtitle("real-time monitoring data")
-            .yAxisTitle("℃")
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("2020")
-                    .data(arrayOf(
-                        /* 2014-01-01 */
-                        arrayOf(138853800, 1.1,  4.7),
-                        arrayOf(138862440, 1.8,  6.4),
-                        arrayOf(138871080, 1.7,  6.9),
-                        arrayOf(138879720, 2.6,  7.4),
-                        arrayOf(138888360, 3.3,  9.3),
-                        arrayOf(138897000, 3.0,  7.9),
-                        arrayOf(138905640, 3.9,  6.0),
-                        arrayOf(138914280, 3.9,  5.5),
-                        arrayOf(138922920, -0.6, 4.5),
-                        arrayOf(138931560, -0.5, 5.3),
-                        arrayOf(138940200, -0.3, 2.4),
-                        arrayOf(138948840, -6.5,-0.4),
-                        arrayOf(138957480, -7.3,-3.4),
-                        arrayOf(138966120, -7.3,-2.3),
-                        arrayOf(138974760, -7.9,-4.2),
-                        arrayOf(138983400, -4.7, 0.9),
-                        arrayOf(138992040, -1.2, 0.4),
-                        arrayOf(139000680, -2.3,-0.1),
-                        arrayOf(139009320, -2.0, 0.3),
-                        arrayOf(139017960, -5.1,-2.0),
-                        arrayOf(139026600, -4.4,-0.5),
-                        arrayOf(139035240, -6.4,-2.7),
-                        arrayOf(139043880, -3.2,-0.5),
-                        arrayOf(139052520, -5.5,-0.8),
-                        arrayOf(139061160, -4.4, 2.4),
-                        arrayOf(139069800, -4.0, 1.1),
-                        arrayOf(139078440, -3.4, 0.8),
-                        arrayOf(139087080, -1.7, 2.6),
-                        arrayOf(139095720, -3.1, 3.9),
-                        arrayOf(139104360, -8,  -1.9),
-                        arrayOf(139113000, -7,  -2.8),
-                        /* 2014-02-01 */
-                        arrayOf(139121640, -2.7, 2.6),
-                        arrayOf(139130280, -1.3, 8.2),
-                        arrayOf(139138920, 1.5,  7.7),
-                        arrayOf(139147560, -0.5, 5.3),
-                        arrayOf(139156200, -0.2, 5.2),
-                        arrayOf(139164840, 0.7,  4.8),
-                        arrayOf(139173480, 0.9,  5.7),
-                        arrayOf(139182120, 1.7,  3.9),
-                        arrayOf(139190760, 2.2,  8.8),
-                        arrayOf(139199400, 3.0,  6.6),
-                        arrayOf(139208040, 1.4,  5.4),
-                        arrayOf(139216680, 0.6,  5.1),
-                        arrayOf(139225320, 0.1,  7.8),
-                        arrayOf(139233960, 3.4,  7.3),
-                        arrayOf(139242600, 2.0,  5.9),
-                        arrayOf(139251240, 1.1,  4.7),
-                        arrayOf(139259880, 1.1,  4.4),
-                        arrayOf(139268520, -2.8, 2.6),
-                        arrayOf(139277160, -5.0, 0.1),
-                        arrayOf(139285800, -5.7, 0.2),
-                        arrayOf(139294440, -0.7, 3.9),
-                        arrayOf(139303080, 1.5,  7.8),
-                        arrayOf(139311720, 5.5,  8.8),
-                        arrayOf(139320360, 5.3, 11.7),
-                        arrayOf(139329000, 1.7, 11.1),
-                        arrayOf(139337640, 3.4,  9.3),
-                        arrayOf(139346280, 3.4,  7.3),
-                        arrayOf(139354920, 4.5,  8.0),
-                        /* 2014-03-01 */
-                        arrayOf(139363560, 2.1,  8.9),
-                        arrayOf(139372200, 0.6,  6.1),
-                        arrayOf(139380840, 1.2,  9.4),
-                        arrayOf(139389480, 2.6,  7.3),
-                        arrayOf(139398120, 3.9,  9.5),
-                        arrayOf(139406760, 5.3,  9.9),
-                        arrayOf(139415400, 2.7,  7.1),
-                        arrayOf(139424040, 4.0,  8.6),
-                        arrayOf(139432680, 6.1, 10.7),
-                        arrayOf(139441320, 4.2,  7.6),
-                        arrayOf(139449960, 2.5,  9.0),
-                        arrayOf(139458600, 0.2,  7.0),
-                        arrayOf(139467240, -1.2, 6.9),
-                        arrayOf(139475880, 0.4,  6.7),
-                        arrayOf(139484520, 0.2,  5.1),
-                        arrayOf(139493160, -0.1, 6.0),
-                        arrayOf(139501800, 1.0,  5.6),
-                        arrayOf(139510440, -1.1, 6.3),
-                        arrayOf(139519080, -1.9, 0.3),
-                        arrayOf(139527720, 0.3,  4.5),
-                        arrayOf(139536360, 2.4,  6.7),
-                        arrayOf(139545000, 3.2,  9.2),
-                        arrayOf(139553640, 1.7,  3.6),
-                        arrayOf(139562280, -0.3, 7.9),
-                        arrayOf(139570920, -2.4, 8.6),
-                        arrayOf(139579560, -1.7,10.3),
-                        arrayOf(139588200, 4.1, 10.0),
-                        arrayOf(139596840, 4.4, 14.0),
-                        arrayOf(139605480, 3.3, 11.0),
-                        arrayOf(139614120, 3.0, 12.5),
-                        arrayOf(139622400, 1.4, 10.4),
-                        /* 2014-04-01 */
-                        arrayOf(139631040, -1.2, 8.8),
-                        arrayOf(139639680, 2.2,  7.6),
-                        arrayOf(139648320, -1.0,10.1),
-                        arrayOf(139656960, -1.8, 9.5),
-                        arrayOf(139665600, 0.2,  7.7),
-                        arrayOf(139674240, 3.7,  6.4),
-                        arrayOf(139682880, 5.8, 11.4),
-                        arrayOf(139691520, 5.4,  8.7),
-                        arrayOf(139700160, 4.5, 12.2),
-                        arrayOf(139708800, 3.9,  8.4),
-                        arrayOf(139717440, 4.5,  8.0),
-                        arrayOf(139726080, 6.6,  8.4),
-                        arrayOf(139734720, 3.7,  7.3),
-                        arrayOf(139743360, 3.6,  6.7),
-                        arrayOf(139752000, 3.5,  8.3),
-                        arrayOf(139760640, 1.5, 10.2),
-                        arrayOf(139769280, 4.9,  9.4),
-                        arrayOf(139777920, 3.5, 12.0),
-                        arrayOf(139786560, 1.5, 13.1),
-                        arrayOf(139795200, 1.7, 15.6),
-                        arrayOf(139803840, 1.4, 16.0),
-                        arrayOf(139812480, 3.0, 18.4),
-                        arrayOf(139821120, 5.6, 18.8),
-                        arrayOf(139829760, 5.7, 17.2),
-                        arrayOf(139838400, 4.5, 16.4),
-                        arrayOf(139847040, 3.1, 17.6),
-                        arrayOf(139855680, 4.7, 18.9),
-                        arrayOf(139864320, 4.9, 16.6),
-                        arrayOf(139872960, 6.8, 15.6),
-                        arrayOf(139881600, 2.8,  9.2),
-                        /* 2014-05-01 */
-                        arrayOf(139890240, -2.7,10.5),
-                        arrayOf(139898880, -1.9,10.9),
-                        arrayOf(139907520, 4.5,  8.5),
-                        arrayOf(139916160, -0.6,10.4),
-                        arrayOf(139924800, 4.0,  9.7),
-                        arrayOf(139933440, 5.5,  9.5),
-                        arrayOf(139942080, 6.5, 13.2),
-                        arrayOf(139950720, 3.2, 14.5),
-                        arrayOf(139959360, 2.1, 13.5),
-                        arrayOf(139968000, 6.5, 15.6),
-                        arrayOf(139976640, 5.7, 16.2),
-                        arrayOf(139985280, 6.3, 15.3),
-                        arrayOf(139993920, 5.3, 15.3),
-                        arrayOf(140002560, 6.0, 14.1),
-                        arrayOf(140011200, 1.9,  7.7),
-                        arrayOf(140019840, 7.2,  9.8),
-                        arrayOf(140028480, 8.9, 15.2),
-                        arrayOf(140037120, 9.1, 20.5),
-                        arrayOf(140045760, 8.4, 17.9),
-                        arrayOf(140054400, 6.8, 21.5),
-                        arrayOf(140063040, 7.6, 14.1),
-                        arrayOf(140071680, 11.1,16.5),
-                        arrayOf(140080320, 9.3, 14.3),
-                        arrayOf(140088960, 10.4,19.3),
-                        arrayOf(140097600, 5.7, 19.4),
-                        arrayOf(140106240, 7.9, 17.9),
-                        arrayOf(140114880, 5.0, 22.5),
-                        arrayOf(140123520, 7.6, 22.0),
-                        arrayOf(140132160, 5.7, 21.9),
-                        arrayOf(140140800, 4.6, 20.0),
-                        arrayOf(140149440, 7.0, 22.0),
-                        /* 2014-06-01 */
-                        arrayOf(140158080, 5.1, 20.6),
-                        arrayOf(140166720, 6.6, 24.6),
-                        arrayOf(140175360, 9.7, 22.2),
-                        arrayOf(140184000, 9.6, 21.6),
-                        arrayOf(140192640, 13.0,20.0),
-                        arrayOf(140201280, 12.9,18.2),
-                        arrayOf(140209920, 8.5, 23.2),
-                        arrayOf(140218560, 9.2, 21.4),
-                        arrayOf(140227200, 10.5,22.0),
-                        arrayOf(140235840, 7.3, 23.4),
-                        arrayOf(140244480, 12.1,18.2),
-                        arrayOf(140253120, 11.1,13.3),
-                        arrayOf(140261760, 10.0,20.7),
-                        arrayOf(140270400, 5.8, 23.4),
-                        arrayOf(140279040, 7.4, 20.1),
-                        arrayOf(140287680, 10.3,21.9),
-                        arrayOf(140296320, 7.8, 16.8),
-                        arrayOf(140304960, 11.6,19.7),
-                        arrayOf(140313600, 9.8, 16.0),
-                        arrayOf(140322240, 10.7,14.4),
-                        arrayOf(140330880, 9.0, 15.5),
-                        arrayOf(140339520, 5.1, 13.3),
-                        arrayOf(140348160, 10.0,19.3),
-                        arrayOf(140356800, 5.2, 22.1),
-                        arrayOf(140365440, 6.3, 21.3),
-                        arrayOf(140374080, 5.5, 21.1),
-                        arrayOf(140382720, 8.4, 19.7),
-                        arrayOf(140391360, 7.1, 23.3),
-                        arrayOf(140400000, 6.1, 20.8),
-                        arrayOf(140408640, 8.4, 22.6),
-                        /* 2014-07-01 */
-                        arrayOf(140417280, 7.6, 23.3),
-                        arrayOf(140425920, 8.1, 21.5),
-                        arrayOf(140434560, 11.2,18.1),
-                        arrayOf(140443200, 6.4, 14.9),
-                        arrayOf(140451840, 12.7,23.1),
-                        arrayOf(140460480, 15.3,21.7),
-                        arrayOf(140469120, 15.1,19.4),
-                        arrayOf(140477760, 10.8,22.8),
-                        arrayOf(140486400, 15.8,29.7),
-                        arrayOf(140495040, 15.8,29.0),
-                        arrayOf(140503680, 15.2,30.5),
-                        arrayOf(140512320, 14.9,28.1),
-                        arrayOf(140520960, 13.1,27.4),
-                        arrayOf(140529600, 15.5,23.5),
-                        arrayOf(140538240, 14.7,20.1),
-                        arrayOf(140546880, 14.4,16.8),
-                        arrayOf(140555520, 12.6,18.5),
-                        arrayOf(140564160, 13.9,24.4),
-                        arrayOf(140572800, 11.3,26.9),
-                        arrayOf(140581440, 13.3,27.4),
-                        arrayOf(140590080, 13.3,29.7),
-                        arrayOf(140598720, 14.0,28.8),
-                        arrayOf(140607360, 14.1,29.8),
-                        arrayOf(140616000, 15.4,31.1),
-                        arrayOf(140624640, 17.0,26.5),
-                        arrayOf(140633280, 16.6,27.1),
-                        arrayOf(140641920, 13.3,25.6),
-                        arrayOf(140650560, 16.8,21.9),
-                        arrayOf(140659200, 16.0,22.8),
-                        arrayOf(140667840, 14.4,19.0),
-                        arrayOf(140676480, 12.8,18.1),
-                        /* 2014-08-01 */
-                        arrayOf(140685120, 12.6,18.0),
-                        arrayOf(140693760, 11.4,19.7),
-                        arrayOf(140702400, 13.9,18.9),
-                        arrayOf(140711040, 12.5,19.9),
-                        arrayOf(140719680, 12.3,23.4),
-                        arrayOf(140728320, 12.8,23.3),
-                        arrayOf(140736960, 11.0,20.4),
-                        arrayOf(140745600, 14.7,22.4),
-                        arrayOf(140754240, 11.1,23.6),
-                        arrayOf(140762880, 13.5,20.7),
-                        arrayOf(140771520, 13.7,23.1),
-                        arrayOf(140780160, 12.8,19.6),
-                        arrayOf(140788800, 12.1,18.7),
-                        arrayOf(140797440, 8.8, 22.4),
-                        arrayOf(140806080, 8.2, 20.1),
-                        arrayOf(140814720, 10.9,16.3),
-                        arrayOf(140823360, 10.7,16.1),
-                        arrayOf(140832000, 11.0,18.9),
-                        arrayOf(140840640, 12.1,14.7),
-                        arrayOf(140849280, 11.2,14.4),
-                        arrayOf(140857920, 9.9, 16.6),
-                        arrayOf(140866560, 6.9, 15.7),
-                        arrayOf(140875200, 8.9, 15.3),
-                        arrayOf(140883840, 8.2, 17.6),
-                        arrayOf(140892480, 8.4, 19.5),
-                        arrayOf(140901120, 6.6, 19.9),
-                        arrayOf(140909760, 6.4, 19.7),
-                        arrayOf(140918400,null, null),
-                        arrayOf(140927040,null, null),
-                        arrayOf(140935680,null, null),
-                        arrayOf(140944320,null, null),
-                        /* 2014-09-01 */
-                        arrayOf(140952960,null, null),
-                        arrayOf(140961600,null, null),
-                        arrayOf(140970240,null, null),
-                        arrayOf(140978880,null, null),
-                        arrayOf(140987520,null, null),
-                        arrayOf(140996160, 13.4,13.4),
-                        arrayOf(141004800, 13.2,17.1),
-                        arrayOf(141013440, 11.9,18.9),
-                        arrayOf(141022080, 9.0, 15.9),
-                        arrayOf(141030720, 5.9, 17.5),
-                        arrayOf(141039360, 6.8, 16.2),
-                        arrayOf(141048000, 10.3,19.9),
-                        arrayOf(141056640, 8.7, 17.9),
-                        arrayOf(141065280, 7.9, 19.1),
-                        arrayOf(141073920, 6.0, 20.1),
-                        arrayOf(141082560, 4.7, 19.9),
-                        arrayOf(141091200, 4.0, 18.8),
-                        arrayOf(141099840, 4.5, 17.9),
-                        arrayOf(141108480, 3.1, 16.1),
-                        arrayOf(141117120, 8.5, 12.2),
-                        arrayOf(141125760, 7.6, 13.8),
-                        arrayOf(141134400, 1.3, 12.6),
-                        arrayOf(141143040, 2.0, 10.9),
-                        arrayOf(141151680, 5.0, 10.8),
-                        arrayOf(141160320, 6.4, 10.1),
-                        arrayOf(141168960, 8.2, 13.3),
-                        arrayOf(141177600, 8.9, 11.8),
-                        arrayOf(141186240, 9.9, 15.9),
-                        arrayOf(141194880, 5.2, 12.5),
-                        arrayOf(141203520, 4.6, 11.7),
-                        /* 2014-10-01 */
-                        arrayOf(141212160, 8.8, 12.1),
-                        arrayOf(141220800, 3.9, 12.3),
-                        arrayOf(141229440, 2.7, 18.1),
-                        arrayOf(141238080, 10.2,18.2),
-                        arrayOf(141246720, 9.6, 17.9),
-                        arrayOf(141255360, 9.3, 17.5),
-                        arrayOf(141264000, 8.1, 12.7),
-                        arrayOf(141272640, 6.7, 11.2),
-                        arrayOf(141281280, 4.0, 10.0),
-                        arrayOf(141289920, 6.3, 10.2),
-                        arrayOf(141298560, 6.6, 10.7),
-                        arrayOf(141307200, 6.6, 10.3),
-                        arrayOf(141315840, 5.9, 10.4),
-                        arrayOf(141324480, 1.2, 10.6),
-                        arrayOf(141333120, -0.1, 9.2),
-                        arrayOf(141341760, -1.0, 9.4),
-                        arrayOf(141350400, -1.7, 8.3),
-                        arrayOf(141359040, -0.6, 7.5),
-                        arrayOf(141367680, 6.9, 10.1),
-                        arrayOf(141376320, 7.7, 10.5),
-                        arrayOf(141384960, 3.8,  9.7),
-                        arrayOf(141393600, 6.2,  8.6),
-                        arrayOf(141402240, 6.5,  9.2),
-                        arrayOf(141410880, 7.9, 10.7),
-                        arrayOf(141419520, 6.1, 10.9),
-                        arrayOf(141428160, 10.3,13.1),
-                        arrayOf(141437160, 7.1, 13.3),
-                        arrayOf(141445800, 0.0, 10.1),
-                        arrayOf(141454440, 0.0,  5.7),
-                        arrayOf(141463080, 3.9,  4.6),
-                        arrayOf(141471720, 4.0,  4.8),
-                        /* 2014-11-01 */
-                        arrayOf(141480360, 4.8, 11.2),
-                        arrayOf(141489000, 7.0,  8.5),
-                        arrayOf(141497640, 3.0,  9.8),
-                        arrayOf(141506280, 2.8,  5.9),
-                        arrayOf(141514920, 0.8,  4.8),
-                        arrayOf(141523560, -0.2, 2.9),
-                        arrayOf(141532200, -0.6, 5.5),
-                        arrayOf(141540840, 6.6, 10.3),
-                        arrayOf(141549480, 5.4,  7.3),
-                        arrayOf(141558120, 3.0,  8.4),
-                        arrayOf(141566760, 0.4,  3.2),
-                        arrayOf(141575400, -0.1, 6.8),
-                        arrayOf(141584040, 4.8,  8.8),
-                        arrayOf(141592680, 4.6,  8.5),
-                        arrayOf(141601320, 4.3,  7.7),
-                        arrayOf(141609960, 3.3,  7.5),
-                        arrayOf(141618600, -0.4, 3.2),
-                        arrayOf(141627240, 1.9,  4.7),
-                        arrayOf(141635880, -0.2, 3.7),
-                        arrayOf(141644520, -1.3, 2.1),
-                        arrayOf(141653160, -1.8, 0.9),
-                        arrayOf(141661800, -2.7, 1.3),
-                        arrayOf(141670440, 0.3,  2.5),
-                        arrayOf(141679080, 3.4,  6.5),
-                        arrayOf(141687720, 0.8,  6.1),
-                        arrayOf(141696360, -1.0, 1.3),
-                        arrayOf(141705000, 0.4,  3.1),
-                        arrayOf(141713640, -1.2, 1.9),
-                        arrayOf(141722280, -1.1, 2.8),
-                        arrayOf(141730920, -0.7, 1.8),
-                        /* 2014-12-01 */
-                        arrayOf(141739560, 0.5,  2.5),
-                        arrayOf(141748200, 1.4,  3.2),
-                        arrayOf(141756840, 4.5, 10.2),
-                        arrayOf(141765480, 0.4, 10.0),
-                        arrayOf(141774120, 2.5,  3.7),
-                        arrayOf(141782760, 1.1,  5.0),
-                        arrayOf(141791400, 2.0,  4.4),
-                        arrayOf(141800040, 1.4,  2.2),
-                        arrayOf(141808680, 0.7,  4.6),
-                        arrayOf(141817320, 1.9,  3.9),
-                        arrayOf(141825960, -0.2, 3.7),
-                        arrayOf(141834600, -0.1, 1.7),
-                        arrayOf(141843240, -1.0, 3.8),
-                        arrayOf(141851880, 0.5,  5.4),
-                        arrayOf(141860520, -1.7, 5.6),
-                        arrayOf(141869160, 0.3,  2.8),
-                        arrayOf(141877800, -3.0, 0.4),
-                        arrayOf(141886440, -1.1, 1.5),
-                        arrayOf(141895080, 0.8,  3.4),
-                        arrayOf(141903720, 0.9,  4.4),
-                        arrayOf(141912360, 0.3,  3.9),
-                        arrayOf(141921000, 0.6,  5.3),
-                        arrayOf(141929640, 1.5,  4.4),
-                        arrayOf(141938280, 0,      0),
-                        arrayOf(141946920, 0,      0),
-                        arrayOf(141955560, 10.6,   4),
-                        arrayOf(141964200, 10.8,   5),
-                        arrayOf(141972840, 8.4,    4),
-                        arrayOf(141981480, 5.2,  2.4),
-                        arrayOf(141990120, 1.3,  2.5),
-                        arrayOf(141998760, 1.6,  4.2)
-                    ))
-
-            ))
-
-    }
-
-    fun configureAreasplinerangeChart(): AAChartModel  {
-        val gradientColorDic = "#ff0000"
-
-        return AAChartModel()
-            .chartType(AAChartType.Areasplinerange)
-            .title("Area spline range chart")
-            .subtitle("virtual data")
-            .yAxisTitle("℃")
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("2020")
-                    .color(gradientColorDic)//猩红色
-                    .data(arrayOf(
-                        /* 2014-06-01 */
-                        arrayOf(140158080, 5.1,  20.6),
-                        arrayOf(140166720, 6.6,  24.6),
-                        arrayOf(140175360, 9.7,  22.2),
-                        arrayOf(140184000, 9.6,  21.6),
-                        arrayOf(140192640, 13.0, 20.0),
-                        arrayOf(140201280, 12.9, 18.2),
-                        arrayOf(140209920, 8.5,  23.2),
-                        arrayOf(140218560, 9.2,  21.4),
-                        arrayOf(140227200, 10.5, 22.0),
-                        arrayOf(140235840, 7.3,  23.4),
-                        arrayOf(140244480, 12.1, 18.2),
-                        arrayOf(140253120, 11.1, 13.3),
-                        arrayOf(140261760, 10.0, 20.7),
-                        arrayOf(140270400, 5.8,  23.4),
-                        arrayOf(140279040, 7.4,  20.1),
-                        arrayOf(140287680, 10.3, 21.9),
-                        arrayOf(140296320, 7.8,  16.8),
-                        arrayOf(140304960, 11.6, 19.7),
-                        arrayOf(140313600, 9.8,  16.0),
-                        arrayOf(140322240, 10.7, 14.4),
-                        arrayOf(140330880, 9.0,  15.5),
-                        arrayOf(140339520, 5.1,  13.3),
-                        arrayOf(140348160, 10.0, 19.3),
-                        arrayOf(140356800, 5.2,  22.1),
-                        arrayOf(140365440, 6.3,  21.3),
-                        arrayOf(140374080, 5.5,  21.1),
-                        arrayOf(140382720, 8.4,  19.7),
-                        arrayOf(140391360, 7.1,  23.3),
-                        arrayOf(140400000, 6.1,  20.8),
-                        arrayOf(140408640, 8.4,  22.6)
-                    )
-                    )
-            )
-            )
-    }
-
-    fun configureColumnrangeChart(): AAChartModel  {
-        return AAChartModel()
-            .chartType(AAChartType.Columnrange)
-            .title("TEMPERATURE VARIATION BY MONTH")
-            .subtitle("observed in Gotham city")
-            .yAxisTitle("℃")
-            .categories(arrayOf(
-                "January",
-                "February",
-                "March",
-                "April",
-                "May",
-                "June",
-                "July",
-                "August",
-                "September",
-                "October",
-                "November",
-                "December"
-            )
-            )
-            .dataLabelsEnabled(true)
-            .inverted(true)//x 轴是否垂直翻转
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("temperature")
-                    .data(arrayOf(
-                        arrayOf(-9.7,  9.4),
-                        arrayOf(-8.7,  6.5),
-                        arrayOf(-3.5,  9.4),
-                        arrayOf(-1.4, 19.9),
-                        arrayOf(0.0,  22.6),
-                        arrayOf(2.9,  29.5),
-                        arrayOf(9.2,  30.7),
-                        arrayOf(7.3,  26.5),
-                        arrayOf(4.4,  18.0),
-                        arrayOf(-3.1, 11.4),
-                        arrayOf(-5.2, 10.4),
-                        arrayOf(-13.5, 9.8)
-                    )
-                    )
-            )
-            )
-    }
-
-    fun configureStepLineChart(): AAChartModel  {
-        return AAChartModel()
-            .chartType(AAChartType.Line)//图形类型
-            .animationType(AAChartAnimationType.Bounce)//图形渲染动画类型为"bounce"
-            .title("STEP LINE CHART")//图形标题
-            .subtitle("2020/08/08")//图形副标题
-            .dataLabelsEnabled(false)//是否显示数字
-            .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式
-            .markerRadius(7f)//折线连接点半径长度,为0时相当于没有折线连接点
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Berlin")
-                    .data(arrayOf(450, 432, 401, 454, 590, 530, 510))
-                    .step("right")//设置折线样式为直方折线,折线连接点位置靠右👉
-                , AASeriesElement()
-                    .name("New York")
-                    .data(arrayOf(220, 282, 201, 234, 290, 430, 410))
-                    .step("center")//设置折线样式为直方折线,折线连接点位置居中
-                , AASeriesElement()
-                    .name("Tokyo")
-                    .data(arrayOf(120, 132, 101, 134, 90, 230, 210))
-                    .step("left")//设置折线样式为直方折线,折线连接点位置靠左👈
-            )
-            )
-    }
-
-    fun configureStepAreaChart(): AAChartModel  {
-        return AAChartModel()
-            .chartType(AAChartType.Area)//图形类型
-            .animationType(AAChartAnimationType.Bounce)//图形渲染动画类型为"bounce"
-            .title("STEP AREA CHART")//图形标题
-            .subtitle("2049/08/08")//图形副标题
-            .dataLabelsEnabled(false)//是否显示数字
-            .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)//折线连接点样式
-            .markerRadius(0f)//折线连接点半径长度,为0时相当于没有折线连接点
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Berlin")
-                    .data(arrayOf(450, 432, 401, 454, 590, 530, 510))
-                    .step(true)//设置折线样式为直方折线,折线连接点位置靠左👈
-                , AASeriesElement()
-                    .name("New York")
-                    .data(arrayOf(220, 282, 201, 234, 290, 430, 410))
-                    .step(true)//设置折线样式为直方折线,折线连接点位置靠左👈
-                , AASeriesElement()
-                    .name("Tokyo")
-                    .data(arrayOf(120, 132, 101, 134, 90, 230, 210))
-                    .step(true)//设置折线样式为直方折线,折线连接点位置靠左👈
-            )
-            )
-    }
-
-    fun configureBoxplotChart(): AAChartModel  {
-        return AAChartModel()
-            .chartType(AAChartType.Boxplot)
-            .title("BOXPLOT CHART")
-            .subtitle("virtual data")
-            .yAxisTitle("℃")
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Observed Data")
-                    .color("#ef476f")
-                    .fillColor(AAGradientColor.firebrickColor())
-                    .data(arrayOf(
-                        arrayOf(760, 801, 848, 895, 965),
-                        arrayOf(733, 853, 939, 980,1080),
-                        arrayOf(714, 762, 817, 870, 918),
-                        arrayOf(724, 802, 806, 871, 950),
-                        arrayOf(834, 836, 864, 882, 910)
-                    )
-                    )
-            )
-            )
-    }
-
-     fun configureWaterfallChart(): AAChartModel {
-        val dataElement1 = HashMap<String, Any>()
-        dataElement1["name"] = "启动资金"
-        dataElement1["y"] = 120000
-
-        val dataElement2 = HashMap<String, Any>()
-        dataElement2["name"] = "产品收入"
-        dataElement2["y"] = 569000
-
-        val dataElement3 = HashMap<String, Any>()
-        dataElement3["name"] = "服务收入"
-        dataElement3["y"] = 231000
-
-        val dataElement4 = HashMap<String, Any>()
-        dataElement4["name"] = "正平衡"
-        dataElement4["isIntermediateSum"] = true
-        dataElement4["color"] = "#ffd066"
-
-        val dataElement5 = HashMap<String, Any>()
-        dataElement5["name"] = "固定成本"
-        dataElement5["y"] = -342000
-
-        val dataElement6 = HashMap<String, Any>()
-        dataElement6["name"] = "可变成本"
-        dataElement6["y"] = -233000
-
-        val dataElement7 = HashMap<String, Any>()
-        dataElement7["name"] = "余额"
-        dataElement7["isSum"] = true
-        dataElement7["color"] = "#04d69f"
-
-        val seriesElement = AAWaterfall()
-            .upColor("#9b43b4")
-            .color("#ef476f")
-            .borderWidth(0f)
-            .data(arrayOf(
-                    dataElement1,
-                    dataElement2,
-                    dataElement3,
-                    dataElement4,
-                    dataElement5,
-                    dataElement6,
-                    dataElement7
-                )
-            )
-
-        return AAChartModel()
-            .chartType(AAChartType.Waterfall)
-            .title("WATERFALL CHART")
-            .subtitle("virtual data")
-//            .series(arrayOf(seriesElement))
-    }
-    fun configurePyramidChart(): AAChartModel  {
-        return AAChartModel()
-            .chartType(AAChartType.Pyramid)
-            .title("THE HEAT OF PROGRAM LANGUAGE")
-            .subtitle("virtual data")
-            .yAxisTitle("℃")
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("2020")
-                    .data(arrayOf(
-                        arrayOf("Swift",       11850),
-                        arrayOf("Objective-C", 12379),
-                        arrayOf("JavaScript",  14286),
-                        arrayOf("Go",          15552),
-                        arrayOf("Python",      18654)
-                    )
-                    )
-            )
-            )
-    }
-
-    fun configureFunnelChart(): AAChartModel  {
-        return AAChartModel()
-            .chartType(AAChartType.Funnel)
-            .title("THE HEAT OF PROGRAM LANGUAGE")
-            .subtitle("virtual data")
-            .yAxisTitle("℉")
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("2020")
-                    .dataLabels(AADataLabels()
-                        .enabled(true)
-                        .inside(true)
-                        .verticalAlign(AAChartVerticalAlignType.Middle)
-                        .color(AAColor.blackColor())
-                        .style(AAStyle()
-                            .fontSize(25f)
-                            .textOutline("0px 0px contrast")))
-                    .data(arrayOf(
-                        arrayOf("Swift",       11850),
-                        arrayOf("Objective-C", 12379),
-                        arrayOf("JavaScript",  14286),
-                        arrayOf("Go",          15552),
-                        arrayOf("Python",      18654))
-                    )
-            )
-            )
-    }
-
-    fun configureErrorbarChart(): AAChartModel {
-        return AAChartModel()
-            .yAxisTitle("")
-            .categories(arrayOf(
-                    "一月", "二月", "三月", "四月", "五月", "六月",
-                    "七月", "八月", "九月", "十月", "十一月", "十二月"
-                ))
-            .series(arrayOf(
-                    AASeriesElement()
-                        .name("降水")
-                        .type(AAChartType.Column)
-                        .color("#06caf4")
-                        .data(arrayOf(49.9, 71.5, 106.4, 129.2, 144.0, 176.0,
-                            135.6, 148.5, 216.4, 194.1, 95.6, 54.4
-                            ))
-                    ,
-                    AASeriesElement()
-                        .name("降雨误差")
-                        .type(AAChartType.Errorbar)
-                        .lineWidth(2.5f)
-                        .color(AAColor.redColor())
-                        .data(arrayOf(
-                                arrayOf(48,   51),
-                                arrayOf(68,   73),
-                                arrayOf(92,  110),
-                                arrayOf(128, 136),
-                                arrayOf(140, 150),
-                                arrayOf(171, 179),
-                                arrayOf(135, 143),
-                                arrayOf(142, 149),
-                                arrayOf(204, 220),
-                                arrayOf(189, 199),
-                                arrayOf(95,  110),
-                                arrayOf(52,   56)
-                            )
-                        )
-                        .tooltip(AATooltip()
-                                .pointFormat("(误差范围: {point.low}-{point.high} mm)<br/>"))
-                )
-            )
-    }
-
-
-
-}

+ 0 - 34
app/src/main/res/drawable-v24/ic_launcher_foreground.xml

@@ -1,34 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:aapt="http://schemas.android.com/aapt"
-        android:width="108dp"
-        android:height="108dp"
-        android:viewportHeight="108"
-        android:viewportWidth="108">
-    <path
-            android:fillType="evenOdd"
-            android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
-            android:strokeColor="#00000000"
-            android:strokeWidth="1">
-        <aapt:attr name="android:fillColor">
-            <gradient
-                    android:endX="78.5885"
-                    android:endY="90.9159"
-                    android:startX="48.7653"
-                    android:startY="61.0927"
-                    android:type="linear">
-                <item
-                        android:color="#44000000"
-                        android:offset="0.0"/>
-                <item
-                        android:color="#00000000"
-                        android:offset="1.0"/>
-            </gradient>
-        </aapt:attr>
-    </path>
-    <path
-            android:fillColor="#FFFFFF"
-            android:fillType="nonZero"
-            android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
-            android:strokeColor="#00000000"
-            android:strokeWidth="1"/>
-</vector>

+ 0 - 74
app/src/main/res/drawable/ic_launcher_background.xml

@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<vector
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:height="108dp"
-        android:width="108dp"
-        android:viewportHeight="108"
-        android:viewportWidth="108">
-    <path android:fillColor="#008577"
-          android:pathData="M0,0h108v108h-108z"/>
-    <path android:fillColor="#00000000" android:pathData="M9,0L9,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M19,0L19,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M29,0L29,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M39,0L39,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M49,0L49,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M59,0L59,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M69,0L69,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M79,0L79,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M89,0L89,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M99,0L99,108"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,9L108,9"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,19L108,19"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,29L108,29"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,39L108,39"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,49L108,49"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,59L108,59"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,69L108,69"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,79L108,79"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,89L108,89"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M0,99L108,99"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M19,29L89,29"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M19,39L89,39"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M19,49L89,49"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M19,59L89,59"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M19,69L89,69"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M19,79L89,79"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M29,19L29,89"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M39,19L39,89"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M49,19L49,89"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M59,19L59,89"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M69,19L69,89"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-    <path android:fillColor="#00000000" android:pathData="M79,19L79,89"
-          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
-</vector>

+ 0 - 17
app/src/main/res/layout/activity_custom_style_chart.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:tools="http://schemas.android.com/tools"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.BasicContent.CustomStyleChartActivity">
-
-
-    <com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-            android:id="@+id/AAChartView"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            />
-
-</android.support.constraint.ConstraintLayout>

+ 0 - 17
app/src/main/res/layout/activity_custom_tooltip_with_jsfunction.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:tools="http://schemas.android.com/tools"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.AdditionalContent.JSFormatterFunctionActivity">
-
-
-    <com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-            android:id="@+id/AAChartView"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-    />
-
-</android.support.constraint.ConstraintLayout>

+ 0 - 41
app/src/main/res/layout/activity_double_charts_linked_work.xml

@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        xmlns:tools="http://schemas.android.com/tools"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.AdditionalContent.DoubleChartsLinkedWorkActivity">
-
-    <LinearLayout
-            android:id="@+id/linearLayout"
-            android:layout_width="0dp"
-            android:layout_height="0dp"
-            android:layout_marginStart="1dp"
-            android:layout_marginLeft="1dp"
-            android:layout_marginTop="1dp"
-            android:layout_marginEnd="1dp"
-            android:layout_marginRight="1dp"
-            android:layout_marginBottom="1dp"
-            android:orientation="vertical"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent">
-
-
-        <com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-                android:id="@+id/AAChartView1"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                />
-
-        <com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-                android:id="@+id/AAChartView2"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_weight="1"
-                />
-
-    </LinearLayout>
-</android.support.constraint.ConstraintLayout>

+ 0 - 16
app/src/main/res/layout/activity_draw_chart_with_aaoptions.xml

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:tools="http://schemas.android.com/tools"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.AdditionalContent.DrawChartWithAAOptionsActivity">
-
-    <com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-            android:id="@+id/AAChartView"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-    />
-
-</android.support.constraint.ConstraintLayout>

+ 0 - 19
app/src/main/res/layout/activity_evaluate_jsstring_function.xml

@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        xmlns:tools="http://schemas.android.com/tools"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.AdditionalContent.EvaluateJSStringFunctionActivity">
-
-    <TextView
-            android:id="@+id/textView7"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="137dp"
-            android:layout_marginLeft="137dp"
-            android:layout_marginTop="200dp"
-            android:text="TextView"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-</android.support.constraint.ConstraintLayout>

+ 0 - 18
app/src/main/res/layout/activity_hide_or_show_chart_series.xml

@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        xmlns:tools="http://schemas.android.com/tools"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.AdditionalContent.HideOrShowChartSeriesActivity">
-
-    <TextView
-            android:id="@+id/textView6"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginTop="282dp"
-            android:text="暂无内容"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent" />
-</android.support.constraint.ConstraintLayout>

+ 0 - 17
app/src/main/res/layout/activity_main.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:tools="http://schemas.android.com/tools"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".MainActivity">
-
-    <ListView
-            android:id="@+id/list"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-    </ListView>
-
-</android.support.constraint.ConstraintLayout>

+ 0 - 17
app/src/main/res/layout/activity_mixed_chart.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:tools="http://schemas.android.com/tools"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.BasicContent.MixedChartActivity">
-
-
-    <com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-            android:id="@+id/AAChartView"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-    />
-
-</android.support.constraint.ConstraintLayout>

+ 0 - 16
app/src/main/res/layout/activity_only_refresh_chart_data.xml

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:tools="http://schemas.android.com/tools"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.AdditionalContent.OnlyRefreshChartDataActivity">
-
-    <com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-            android:id="@+id/AAChartView"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            />
-
-</android.support.constraint.ConstraintLayout>

+ 0 - 9
app/src/main/res/layout/activity_scrolling_update_data.xml

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        xmlns:tools="http://schemas.android.com/tools"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.AdditionalContent.ScrollingUpdateDataActivity">
-
-</android.support.constraint.ConstraintLayout>

+ 0 - 17
app/src/main/res/layout/activity_special_chart.xml

@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:tools="http://schemas.android.com/tools"
-        xmlns:app="http://schemas.android.com/apk/res-auto"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        tools:context=".ChartsDemo.BasicContent.SpecialChartActivity">
-
-
-    <com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-            android:id="@+id/AAChartView"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-    />
-
-</android.support.constraint.ConstraintLayout>

+ 0 - 17
app/src/test/java/com/aachartmodel/aainfographics/ExampleUnitTest.kt

@@ -1,17 +0,0 @@
-package com.aachartmodel.aainfographics
-
-import org.junit.Test
-
-import org.junit.Assert.*
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
-    @Test
-    fun addition_isCorrect() {
-        assertEquals(4, 2 + 2)
-    }
-}

+ 44 - 0
build.gradle.kts

@@ -0,0 +1,44 @@
+buildscript {
+    repositories {
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath(Libs.com_android_tools_build_gradle)
+        classpath(Libs.org_jetbrains_kotlin_kotlin_gradle_plugin)
+        classpath(Libs.com_jfrog_bintray_gradle_bintray_plugin)
+    }
+}
+
+plugins {
+    mavenPublish
+}
+
+allprojects {
+    repositories {
+        google()
+        jcenter()
+        maven(url = "https://jitpack.io")
+    }
+}
+
+task<Delete>("clean") {
+    delete(rootProject.buildDir)
+}
+
+tasks.withType<Javadoc> {
+    options {
+        this as StandardJavadocDocletOptions
+        addStringOption("Xdoclint:none", "-quiet")
+        addStringOption("encoding", "UTF-8")
+    }
+}
+
+//For Groovy build.gradle files
+project.extra.apply {
+    set("minSdkVersion", AndroidConstants.minSdkVersion)
+    set("targetSdkVersion", AndroidConstants.targetSdkVersion)
+    set("compileSdkVersion", AndroidConstants.compileSdkVersions)
+    set("buildToolsVersion", AndroidConstants.buildToolsVersion)
+}

+ 6 - 0
buildSrc/build.gradle.kts

@@ -0,0 +1,6 @@
+plugins {
+    `kotlin-dsl`
+}
+repositories {
+    mavenCentral()
+}

+ 37 - 0
buildSrc/src/main/java/Constants.kt

@@ -0,0 +1,37 @@
+import org.gradle.plugin.use.PluginDependenciesSpec
+import org.gradle.plugin.use.PluginDependencySpec
+
+object AndroidConstants {
+    const val minSdkVersion = 19
+    const val targetSdkVersion = 30
+    const val compileSdkVersions = 30
+    const val buildToolsVersion = "30.0.2"
+}
+
+object Versions {
+    const val build_gradle_version = "4.0.1"
+    const val kotlin_gradle_plugin_version = "1.4.10"
+    const val bintray_plugin_version = "1.8.5"
+
+    const val bintray_version = "1.8.5"
+    const val kotlin_stdlib_version = "1.4.10"
+    const val gson_version = "2.8.6"
+}
+
+object Libs {
+    const val com_jfrog_bintray = "com.jfrog.bintray.gradle"
+    const val maven_publish = "maven-publish"
+
+    const val com_android_tools_build_gradle = "com.android.tools.build:gradle:${Versions.build_gradle_version}"
+    const val org_jetbrains_kotlin_kotlin_gradle_plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin_gradle_plugin_version}"
+    const val com_jfrog_bintray_gradle_bintray_plugin = com_jfrog_bintray + ":gradle-bintray-plugin:${Versions.bintray_plugin_version}"
+
+    const val kotlin_jdk = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin_stdlib_version}"
+    const val gson = "com.google.code.gson:gson:${Versions.gson_version}"
+}
+
+val PluginDependenciesSpec.mavenPublish: PluginDependencySpec
+    inline get() = id(Libs.maven_publish)
+
+val PluginDependenciesSpec.bintray: PluginDependencySpec
+    inline get() = id(Libs.com_jfrog_bintray).version(Versions.bintray_version)

+ 85 - 0
charts/build.gradle.kts

@@ -0,0 +1,85 @@
+plugins {
+    id("com.android.library")
+    kotlin("android")
+    kotlin("android.extensions")
+}
+
+buildscript {
+    repositories {
+        jcenter()
+    }
+
+    dependencies {
+        classpath(Libs.com_jfrog_bintray_gradle_bintray_plugin)
+    }
+}
+apply(plugin = Libs.maven_publish)
+
+android {
+    compileSdkVersion(AndroidConstants.compileSdkVersions)
+
+    defaultConfig {
+        minSdkVersion(AndroidConstants.minSdkVersion)
+        targetSdkVersion(AndroidConstants.targetSdkVersion)
+    }
+    compileOptions {
+        sourceCompatibility = JavaVersion.VERSION_1_8
+        targetCompatibility = JavaVersion.VERSION_1_8
+    }
+    kotlinOptions {
+        jvmTarget = "1.8"
+    }
+}
+
+dependencies {
+    implementation(Libs.gson)
+}
+
+afterEvaluate {
+    configure<PublishingExtension> {
+        val artifact = "charts"
+        val publishedGroupId = "com.github.aachartmodel.aainfographics"
+        val libraryName = "AAChartCore-Kotlin"
+
+        publications {
+            create<MavenPublication>("maven") {
+                groupId = publishedGroupId
+                artifactId = artifact
+                version = "1.0.0"
+
+                artifact(tasks.getByName("sourcesJar"))
+                artifact("$buildDir/outputs/aar/${artifactId}-release.aar") {
+                    builtBy(tasks.getByName("assemble"))
+                }
+
+                pom {
+                    packaging = "aar"
+                    name.set(libraryName)
+                    licenses {
+                        license {
+                            name.set("The Apache Software License, Version 2.0")
+                            url.set("http://www.apache.org/licenses/LICENSE-2.0.txt")
+                        }
+                    }
+                    withXml {
+                        val dependenciesNode = asNode().appendNode("dependencies")
+                        // note: replace with the desired configuration (ex: api, testImplementation, etc...)
+                        configurations.getByName("implementation") {
+                            dependencies.forEach {
+                                val dependencyNode = dependenciesNode.appendNode("dependency")
+                                dependencyNode.appendNode("groupId", it.group)
+                                dependencyNode.appendNode("artifactId", it.name)
+                                dependencyNode.appendNode("version", it.version)
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
+
+val sourcesJar by tasks.registering(Jar::class) {
+    archiveClassifier.set("sources")
+    from(android.sourceSets.getByName("main").java.srcDirs)
+}

+ 1 - 0
charts/src/main/AndroidManifest.xml

@@ -0,0 +1 @@
+<manifest package="com.github.aachartmodel.aainfographics" />

+ 40 - 0
charts/src/main/assets/AAChartView.html

@@ -0,0 +1,40 @@
+<html>
+<head>
+    <meta charset="UTF-8"/>
+    <meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=3.0,user-scalable = no"
+          name="viewport">
+    <title>AAChartKit-Swift</title>
+
+    <script src="AAHighchartsLib.js">
+    </script>
+    <script src="AAHighchartsMore.js">
+    </script>
+    <script src="AAFunnel.js">
+    </script>
+    <script src="AAEasing.js">
+    </script>
+    <script src="AAChartView.js">
+    </script>
+    <!--<script src = "https://img.hcharts.cn/highcharts/themes/dark-unica.js">-->
+    <!--</script>-->
+
+    <!--&lt;!&ndash;若介意本地js代码体积(250KB左右)过大,可换用加载网络js代码 &ndash;&gt;-->
+    <!--<script src="https://img.hcharts.cn/highcharts/highcharts.js">-->
+    <!--</script>-->
+    <!--<script src="https://img.hcharts.cn/highcharts/highcharts-more.js">-->
+    <!--</script>-->
+
+    <style>
+                *{
+                    -webkit-user-select: none;
+                    user-select: none;
+                }
+
+
+    </style>
+</head>
+<body style="margin:0px 0px 0px 0px;">
+<div id="container" style="width:100%; height: 100%;"></div>
+</div>
+</body>
+</html>

+ 0 - 0
app/src/main/assets/AAChartView.js → charts/src/main/assets/AAChartView.js


+ 0 - 0
app/src/main/assets/AAEasing.js → charts/src/main/assets/AAEasing.js


+ 0 - 0
app/src/main/assets/AAFunnel.js → charts/src/main/assets/AAFunnel.js


+ 0 - 0
app/src/main/assets/AAHighchartsLib.js → charts/src/main/assets/AAHighchartsLib.js


+ 0 - 0
app/src/main/assets/AAHighchartsMore.js → charts/src/main/assets/AAHighchartsMore.js


+ 127 - 128
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAChartCreator/AAChartModel.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aachartcreator/AAChartModel.kt

@@ -26,133 +26,133 @@
 
  */
 
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator
-
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAScrollablePlotArea
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAStyle
-
-enum class AAChartAnimationType(val value :String){
-    Linear         ("Linear"),
-    EaseInQuad     ("easeInQuad"),
-    EaseOutQuad    ("easeOutQuad"),
-    EaseInOutQuad  ("easeInOutQuad"),
-    EaseInCubic    ("easeInCubic"),
-    EaseOutCubic   ("easeOutCubic"),
-    EaseInOutCubic ("easeInOutCubic"),
-    EaseInQuart    ("easeInQuart"),
-    EaseOutQuart   ("easeOutQuart"),
-    EaseInOutQuart ("easeInOutQuart"),
-    EaseInQuint    ("easeInQuint"),
-    EaseOutQuint   ("easeOutQuint"),
-    EaseInOutQuint ("easeInOutQuint"),
-    EaseInSine     ("easeInSine"),
-    EaseOutSine    ("easeOutSine"),
-    EaseInOutSine  ("easeInOutSine"),
-    EaseInExpo     ("easeInExpo"),
-    EaseOutExpo    ("easeOutExpo"),
-    EaseInOutExpo  ("easeInOutExpo"),
-    EaseInCirc     ("easeInCirc"),
-    EaseOutCirc    ("easeOutCirc"),
-    EaseInOutCirc  ("easeInOutCirc"),
-    EaseOutBounce  ("easeOutBounce"),
-    EaseInBack     ("easeInBack"),
-    EaseOutBack    ("easeOutBack"),
-    EaseInOutBack  ("easeInOutBack"),
-    Elastic        ("elastic"),
-    SwingFromTo    ("swingFromTo"),
-    SwingFrom      ("swingFrom"),
-    SwingTo        ("swingTo"),
-    Bounce         ("bounce"),
-    BouncePast     ("bouncePast"),
-    EaseFromTo     ("easeFromTo"),
-    EaseFrom       ("easeFrom"),
-    EaseTo         ("easeTo"),
+package com.github.aachartmodel.aainfographics.aachartcreator
+
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAScrollablePlotArea
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAStyle
+
+enum class AAChartAnimationType(val value: String) {
+    Linear("Linear"),
+    EaseInQuad("easeInQuad"),
+    EaseOutQuad("easeOutQuad"),
+    EaseInOutQuad("easeInOutQuad"),
+    EaseInCubic("easeInCubic"),
+    EaseOutCubic("easeOutCubic"),
+    EaseInOutCubic("easeInOutCubic"),
+    EaseInQuart("easeInQuart"),
+    EaseOutQuart("easeOutQuart"),
+    EaseInOutQuart("easeInOutQuart"),
+    EaseInQuint("easeInQuint"),
+    EaseOutQuint("easeOutQuint"),
+    EaseInOutQuint("easeInOutQuint"),
+    EaseInSine("easeInSine"),
+    EaseOutSine("easeOutSine"),
+    EaseInOutSine("easeInOutSine"),
+    EaseInExpo("easeInExpo"),
+    EaseOutExpo("easeOutExpo"),
+    EaseInOutExpo("easeInOutExpo"),
+    EaseInCirc("easeInCirc"),
+    EaseOutCirc("easeOutCirc"),
+    EaseInOutCirc("easeInOutCirc"),
+    EaseOutBounce("easeOutBounce"),
+    EaseInBack("easeInBack"),
+    EaseOutBack("easeOutBack"),
+    EaseInOutBack("easeInOutBack"),
+    Elastic("elastic"),
+    SwingFromTo("swingFromTo"),
+    SwingFrom("swingFrom"),
+    SwingTo("swingTo"),
+    Bounce("bounce"),
+    BouncePast("bouncePast"),
+    EaseFromTo("easeFromTo"),
+    EaseFrom("easeFrom"),
+    EaseTo("easeTo"),
 }
 
 enum class AAChartType(val value: String) {
-    Column          ("column"),
-    Bar             ("bar"),
-    Area            ("area"),
-    Areaspline      ("areaspline"),
-    Line            ("line"),
-    Spline          ("spline"),
-    Scatter         ("scatter"),
-    Pie             ("pie"),
-    Bubble          ("bubble"),
-    Pyramid         ("pyramid"),
-    Funnel          ("funnel"),
-    Columnrange     ("columnrange"),
-    Arearange       ("arearange"),
-    Areasplinerange ("areasplinerange"),
-    Boxplot         ("boxplot"),
-    Waterfall       ("waterfall"),
-    Polygon         ("polygon"),
-    Gauge           ("gauge"),
-    Errorbar        ("errorbar"),
+    Column("column"),
+    Bar("bar"),
+    Area("area"),
+    Areaspline("areaspline"),
+    Line("line"),
+    Spline("spline"),
+    Scatter("scatter"),
+    Pie("pie"),
+    Bubble("bubble"),
+    Pyramid("pyramid"),
+    Funnel("funnel"),
+    Columnrange("columnrange"),
+    Arearange("arearange"),
+    Areasplinerange("areasplinerange"),
+    Boxplot("boxplot"),
+    Waterfall("waterfall"),
+    Polygon("polygon"),
+    Gauge("gauge"),
+    Errorbar("errorbar"),
 }
 
 enum class AAChartZoomType(val value: String) {
-    None ("none"),
-    X    ("x"),
-    Y    ("y"),
-    XY   ("xy"),
+    None("none"),
+    X("x"),
+    Y("y"),
+    XY("xy"),
 }
 
 enum class AAChartStackingType(val value: String) {
-    False   (""),
-    Normal  ("normal"),
-    Percent ("percent"),
+    False(""),
+    Normal("normal"),
+    Percent("percent"),
 }
 
 enum class AAChartSymbolType(val value: String) {
-    Circle         ("circle"),
-    Square         ("square"),
-    Diamond        ("diamond"),
-    Triangle       ("triangle"),
-    TriangleDown   ("triangle-down"),
+    Circle("circle"),
+    Square("square"),
+    Diamond("diamond"),
+    Triangle("triangle"),
+    TriangleDown("triangle-down"),
 }
 
 enum class AAChartSymbolStyleType(val value: String) {
-    Normal       ("normal"),
-    InnerBlank   ("innerBlank"),
-    BorderBlank  ("borderBlank"),
+    Normal("normal"),
+    InnerBlank("innerBlank"),
+    BorderBlank("borderBlank"),
 }
 
 enum class AAChartLayoutType(val value: String) {
-    Horizontal  ("horizontal"),
-    Vertical    ("vertical"),
+    Horizontal("horizontal"),
+    Vertical("vertical"),
 }
 
 enum class AAChartAlignType(val value: String) {
-    Left     ("left"),
-    Center   ("center"),
-    Right    ("right"),
+    Left("left"),
+    Center("center"),
+    Right("right"),
 }
 
 enum class AAChartVerticalAlignType(val value: String) {
-    Top     ("top"),
-    Middle  ("middle"),
-    Bottom  ("bottom"),
+    Top("top"),
+    Middle("middle"),
+    Bottom("bottom"),
 }
 
 enum class AAChartLineDashStyleType(val value: String) {
-    Solid           ("Solid"),
-    ShortDash       ("ShortDash"),
-    ShortDot        ("ShortDot"),
-    ShortDashDot    ("ShortDashDot"),
-    ShortDashDotDot ("ShortDashDotDot"),
-    Dot             ("Dot"),
-    Dash            ("Dash"),
-    LongDash        ("LongDash"),
-    DashDot         ("DashDot"),
-    LongDashDot     ("LongDashDot"),
-    LongDashDotDot  ("LongDashDotDot"),
+    Solid("Solid"),
+    ShortDash("ShortDash"),
+    ShortDot("ShortDot"),
+    ShortDashDot("ShortDashDot"),
+    ShortDashDotDot("ShortDashDotDot"),
+    Dot("Dot"),
+    Dash("Dash"),
+    LongDash("LongDash"),
+    DashDot("DashDot"),
+    LongDashDot("LongDashDot"),
+    LongDashDotDot("LongDashDotDot"),
 }
 
 enum class AAChartFontWeightType(val value: String) {
-    Thin     ("thin"),
-    Regular  ("regular"),
-    Bold     ("bold"),
+    Thin("thin"),
+    Regular("regular"),
+    Bold("bold"),
 }
 
 
@@ -169,7 +169,8 @@ class AAChartModel {
     var chartType: AAChartType? = null         //图表类型
     var stacking: AAChartStackingType? = null  //堆积样式
     var markerRadius: Float? = null            //折线连接点的半径长度
-    var markerSymbol: AAChartSymbolType? = null//折线曲线连接点的类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
+    var markerSymbol: AAChartSymbolType? =
+        null//折线曲线连接点的类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
     var markerSymbolStyle: AAChartSymbolStyleType? = null
     var zoomType: AAChartZoomType? = null      //缩放类型 AAChartZoomTypeX表示可沿着 x 轴进行手势缩放
     var inverted: Boolean? = null              //x 轴是否翻转(垂直)
@@ -198,7 +199,7 @@ class AAChartModel {
     var yAxisGridLineWidth: Float? = null      //y轴网格线的宽度
     var colorsTheme: Array<Any>? = null        //图表主题颜色数组
     var legendEnabled: Boolean? = null         //是否显示图例
-    var backgroundColor: Any ? = null          //图表背景色
+    var backgroundColor: Any? = null          //图表背景色
     var borderRadius: Float? = null            //柱状图长条图头部圆角半径(可用于设置头部的形状,仅对条形图,柱状图有效)
     var series: Array<AASeriesElement>? = null
     var touchEventEnabled: Boolean? = null     //是否支持用户触摸事件
@@ -315,7 +316,7 @@ class AAChartModel {
         return this
     }
 
-    fun margin(prop: Array<Float>): AAChartModel {
+    fun margin(prop: Array<Float>?): AAChartModel {
         margin = prop
         return this
     }
@@ -431,32 +432,30 @@ class AAChartModel {
         return this
     }
 
-     init {
-         title                = ""
-         subtitle             = ""
-         chartType            = AAChartType.Line
-         animationDuration    = 500 //以毫秒为单位
-         animationType        = AAChartAnimationType.Linear
-         inverted             = false
-         stacking             = AAChartStackingType.False
-         xAxisReversed        = false
-         yAxisReversed        = false
-         zoomType             = AAChartZoomType.None
-         dataLabelsEnabled    = false
-         markerSymbolStyle    = AAChartSymbolStyleType.Normal
-         colorsTheme          = arrayOf("#fe117c", "#ffc069", "#06caf4", "#7dffc0")
-         tooltipCrosshairs    = true
-         gradientColorEnable  = false
-         polar                = false
-         xAxisLabelsEnabled   = true
-         xAxisGridLineWidth   = 0f
-         yAxisLabelsEnabled   = true
-         yAxisGridLineWidth   = 1f
-         legendEnabled        = true
-         backgroundColor      = "#ffffff"
-         borderRadius         = 0f//柱状图长条图头部圆角半径(可用于设置头部的形状,仅对条形图,柱状图有效,设置为1000时,柱形图或者条形图头部为楔形)
-         markerRadius         = 6f//折线连接点的半径长度,如果值设置为0,这样就相当于不显示了
-     }
-
-
+    init {
+        title = ""
+        subtitle = ""
+        chartType = AAChartType.Line
+        animationDuration = 500 //以毫秒为单位
+        animationType = AAChartAnimationType.Linear
+        inverted = false
+        stacking = AAChartStackingType.False
+        xAxisReversed = false
+        yAxisReversed = false
+        zoomType = AAChartZoomType.None
+        dataLabelsEnabled = false
+        markerSymbolStyle = AAChartSymbolStyleType.Normal
+        colorsTheme = arrayOf("#fe117c", "#ffc069", "#06caf4", "#7dffc0")
+        tooltipCrosshairs = true
+        gradientColorEnable = false
+        polar = false
+        xAxisLabelsEnabled = true
+        xAxisGridLineWidth = 0f
+        yAxisLabelsEnabled = true
+        yAxisGridLineWidth = 1f
+        legendEnabled = true
+        backgroundColor = "#ffffff"
+        borderRadius = 0f//柱状图长条图头部圆角半径(可用于设置头部的形状,仅对条形图,柱状图有效,设置为1000时,柱形图或者条形图头部为楔形)
+        markerRadius = 6f//折线连接点的半径长度,如果值设置为0,这样就相当于不显示了
+    }
 }

+ 34 - 33
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAChartCreator/AAChartView.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aachartcreator/AAChartView.kt

@@ -4,41 +4,42 @@
 //
 //  Created by AnAn on 2017/9/8..
 //  Copyright © 2018年 An An. All rights reserved.
-*/
+ */
 /**
-* ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
-* ◉◉◉...................................................       ◉◉◉
-* ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
-* ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
-* ◉◉◉...................................................       ◉◉◉
-* ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
-
-
-* -------------------------------------------------------------------------------
-*
-*  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
-*
-* Please contact me on GitHub,if there are any problems encountered in use.
-* GitHub Issues : https://github.com/AAChartModel/AAChartCore/issues
-* -------------------------------------------------------------------------------
-* And if you want to contribute for this project, please contact me as well
-* GitHub        : https://github.com/AAChartModel
-* StackOverflow : https://stackoverflow.com/users/7842508/codeforu
-* JianShu       : http://www.jianshu.com/u/f1e6753d4254
-* SegmentFault  : https://segmentfault.com/u/huanghunbieguan
-*
-* -------------------------------------------------------------------------------
-
-*/
-
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator
-
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+
+
+ * -------------------------------------------------------------------------------
+ *
+ *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
+ *
+ * Please contact me on GitHub,if there are any problems encountered in use.
+ * GitHub Issues : https://github.com/AAChartModel/AAChartCore/issues
+ * -------------------------------------------------------------------------------
+ * And if you want to contribute for this project, please contact me as well
+ * GitHub        : https://github.com/AAChartModel
+ * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
+ * JianShu       : http://www.jianshu.com/u/f1e6753d4254
+ * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
+ *
+ * -------------------------------------------------------------------------------
+
+ */
+
+package com.github.aachartmodel.aainfographics.aachartcreator
+
+import android.app.AlertDialog
 import android.content.Context
 import android.os.Build
-import android.support.v7.app.AlertDialog
 import android.util.AttributeSet
 import android.webkit.*
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAOptions
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAOptions
+import com.github.aachartmodel.aainfographics.aatools.AAJSStringPurer
 import com.google.gson.Gson
 import com.google.gson.internal.LinkedTreeMap
 import java.util.*
@@ -101,20 +102,20 @@ class AAChartView : WebView {
     private var optionsJson: String? = null
 
     constructor(
-        context: Context?
+        context: Context
     ) : super(context) {
         setupBasicContent()
     }
 
     constructor(
-        context: Context?,
+        context: Context,
         attrs: AttributeSet?
     ) : super(context, attrs) {
         setupBasicContent()
     }
 
     constructor(
-        context: Context?,
+        context: Context,
         attrs: AttributeSet?,
         defStyleAttr: Int
     ) : super(context, attrs, defStyleAttr) {

+ 23 - 20
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAChartCreator/AAOptionsConstructor.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aachartcreator/AAOptionsConstructor.kt

@@ -4,7 +4,7 @@
 //
 //  Created by AnAn on 2018/12/08.
 //  Copyright © 2018年 An An. All rights reserved.
-*/
+ */
 /**
  * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
  * ◉◉◉...................................................       ◉◉◉
@@ -32,15 +32,14 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator
-
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.*
+package com.github.aachartmodel.aainfographics.aachartcreator
 
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.*
 
 object AAOptionsConstructor {
     fun configureChartOptions(
-        aaChartModel:AAChartModel
-    ):AAOptions {
+        aaChartModel: AAChartModel
+    ): AAOptions {
         val aaChart = AAChart()
             .type(aaChartModel.chartType) //绘图类型
             .inverted(aaChartModel.inverted) //设置是否反转坐标轴,使X轴垂直,Y轴水平。 如果值为 true,则 x 轴默认是 倒置 的。 如果图表中出现条形图系列,则会自动反转
@@ -67,16 +66,18 @@ object AAOptionsConstructor {
             .valueSuffix(aaChartModel.tooltipValueSuffix) //浮动提示框的单位名称后缀
 
         val aaPlotOptions = AAPlotOptions()
-            .series(AASeries()
-                .stacking(aaChartModel.stacking) //设置是否百分比堆叠显示图形
+            .series(
+                AASeries()
+                    .stacking(aaChartModel.stacking) //设置是否百分比堆叠显示图形
             )
 
         if (aaChartModel.animationType != AAChartAnimationType.Linear) {
             aaPlotOptions
-                .series?.animation(AAAnimation()
-                .easing(aaChartModel.animationType)
-                .duration(aaChartModel.animationDuration)
-            )
+                .series?.animation(
+                    AAAnimation()
+                        .easing(aaChartModel.animationType)
+                        .duration(aaChartModel.animationDuration)
+                )
         }
 
         configureAAPlotOptionsMarkerStyle(aaChartModel, aaPlotOptions)
@@ -115,7 +116,8 @@ object AAOptionsConstructor {
             || chartType == AAChartType.Areaspline
             || chartType == AAChartType.Line
             || chartType == AAChartType.Spline
-            || chartType == AAChartType.Scatter) {
+            || chartType == AAChartType.Scatter
+        ) {
             val aaMarker = AAMarker()
                 .radius(aaChartModel.markerRadius) //曲线连接点半径,默认是4
                 .symbol(aaChartModel.markerSymbol?.value) //曲线点类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
@@ -198,9 +200,10 @@ object AAOptionsConstructor {
     ) {
         val chartType = aaChartModel.chartType
         //x 轴和 Y 轴的相关配置,扇形图、金字塔图和漏斗图则不需要设置 X 轴和 Y 轴的相关内容
-        if (   chartType != AAChartType.Pie
+        if (chartType != AAChartType.Pie
             && chartType != AAChartType.Pyramid
-            && chartType != AAChartType.Funnel) {
+            && chartType != AAChartType.Funnel
+        ) {
             val aaXAxisLabelsEnabled = aaChartModel.xAxisLabelsEnabled
             val aaXAxisLabels = AALabels()
                 .enabled(aaXAxisLabelsEnabled) //设置 x 轴是否显示文字
@@ -236,9 +239,11 @@ object AAOptionsConstructor {
                 .allowDecimals(aaChartModel.yAxisAllowDecimals) //是否允许显示小数
                 .reversed(aaChartModel.yAxisReversed)
                 .gridLineWidth(aaChartModel.yAxisGridLineWidth) //y轴网格线宽度
-                .title(AATitle()
+                .title(
+                    AATitle()
                         .text(aaChartModel.yAxisTitle)
-                        .style(AAStyle()
+                        .style(
+                            AAStyle()
                                 .color(aaChartModel.axesTextColor)
                         )
                 ) //y 轴标题
@@ -249,6 +254,4 @@ object AAOptionsConstructor {
                 .yAxis(aaYAxis)
         }
     }
-
-
-}
+}

+ 4 - 6
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAChartCreator/AASeriesElement.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aachartcreator/AASeriesElement.kt

@@ -25,12 +25,12 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator
+package com.github.aachartmodel.aainfographics.aachartcreator
 
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AADataLabels
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAMarker
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AATooltip
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AADataLabels
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAMarker
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AATooltip
 
 /**
  * Created by anan on 2018/4/16.
@@ -221,7 +221,6 @@ class AASeriesElement {
 
 }
 
-
 class AADataElement {
     private var name: String? = null
     private var y: Float? = null
@@ -255,7 +254,6 @@ class AADataElement {
     }
 }
 
-
 class AAShadow {
     private var color: String? = null
     private var offsetX: Float? = null

+ 2 - 2
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAAnimation.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAAnimation.kt

@@ -6,9 +6,9 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartAnimationType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartAnimationType
 
 class AAAnimation {
     private var duration: Int? = null

+ 5 - 4
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAChart.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAChart.kt

@@ -6,10 +6,10 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartType
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartZoomType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartZoomType
 
 class AAChart {
     private var type: String? = null
@@ -21,7 +21,8 @@ class AAChart {
     private var polar: Boolean? = null
     private var animation: AAAnimation? = null
     private var inverted: Boolean? = null
-    /*图表外边缘和绘图区域之间的边距。 数组中的数字分别表示顶部,右侧,底部和左侧 ([👆,👉,👇,👈])。 
+
+    /*图表外边缘和绘图区域之间的边距。 数组中的数字分别表示顶部,右侧,底部和左侧 ([👆,👉,👇,👈])。
     也可以使用 marginTop,marginRight,marginBottom 和 marginLeft 来设置某一个方向的边距*/
     private var margin: Array<Float>? = null
     private var marginTop: Float? = null//👆

+ 9 - 10
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AACrosshair.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AACrosshair.kt

@@ -7,13 +7,13 @@
  * History:
  */
 /**
-* ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
-* ◉◉◉...................................................       ◉◉◉
-* ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
-* ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
-* ◉◉◉...................................................       ◉◉◉
-* ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
-*/
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ */
 
 /**
 
@@ -33,10 +33,9 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
-
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartLineDashStyleType
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartLineDashStyleType
 
 class AACrosshair {
     private var width: Float? = null

+ 3 - 3
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AADataLabels.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AADataLabels.kt

@@ -6,10 +6,10 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartAlignType
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartVerticalAlignType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartAlignType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartVerticalAlignType
 
 class AADataLabels {
     var enabled: Boolean? = null

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AALabel.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AALabel.kt

@@ -6,7 +6,7 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AALabel {
     private var text: String? = null

+ 18 - 18
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AALabels.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AALabels.kt

@@ -6,32 +6,32 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartAlignType
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAJSStringPurer
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartAlignType
+import com.github.aachartmodel.aainfographics.aatools.AAJSStringPurer
 
 
 class AALabels {
-     var align: String? =
+    var align: String? =
         null//轴标签的对齐方式,可用的值有 "left"、"center" 及 "right"。默认值是根据坐标轴的位置(在图表中的位置)即标签的旋转角度进行智能判断的。 默认是:center.
-     var autoRotation: Any? =
+    var autoRotation: Any? =
         null //只针对水平轴有效,允许在防止轴标签重叠时自动旋转轴标签的角度。当空间足够时,轴标签不会被旋转。当图表变小时(主要是宽度变小) ,轴标签开始旋转对应的角度,然后会依次删除间隔的轴标签并尝试旋转数组中的角度。可以通过将此参数设置为 false 来关闭轴标签旋转(这将导致标签自动换行)。 默认是:[-45].
-     var autoRotationLimit: Float? =
+    var autoRotationLimit: Float? =
         null//当每个分类的宽度比该参数的值大很多(像素)时,轴标签将不会被自动旋转,而是以换行的形式展示轴标签。 当轴标签包含多个短词时换行展示轴标签可以使得轴标签有足够的空间,所以设置合理的自动旋转下限是非常有意义的。 默认是:80.
-     var distance: Float? = null//只针对极地图有效,定义周标签与绘图区边缘的距离。 默认是:15.
-     var enabled: Boolean? = null//是否显示坐标轴标签 默认是:true.
-     var format: String? = null//坐标轴格式化字符串。 默认是:{value}.
-     var formatter: String? = null//坐标轴格式化字符串。 默认是:{value}.
-     var padding: Float? = null//轴标签的内间距,作用是保证轴标签之间有空隙。 默认是:5.
-     var rotation: Float? = null//轴标签的旋转角度 默认是:0.
-     var staggerLines: Int? = null//只针对水平轴有效,定义轴标签显示行数。
-     var step: Int? =
+    var distance: Float? = null//只针对极地图有效,定义周标签与绘图区边缘的距离。 默认是:15.
+    var enabled: Boolean? = null//是否显示坐标轴标签 默认是:true.
+    var format: String? = null//坐标轴格式化字符串。 默认是:{value}.
+    var formatter: String? = null//坐标轴格式化字符串。 默认是:{value}.
+    var padding: Float? = null//轴标签的内间距,作用是保证轴标签之间有空隙。 默认是:5.
+    var rotation: Float? = null//轴标签的旋转角度 默认是:0.
+    var staggerLines: Int? = null//只针对水平轴有效,定义轴标签显示行数。
+    var step: Int? =
         null//显示 n 的倍数标签,例如设置为 2 则表示标签间隔一个轴标签显示。默认情况下,为了避免轴标签被覆盖,该参数会根据情况自动计算。可以通过设置此参数为 1 来阻止自动计算。
-     var style: AAStyle? = null//轴标签的 CSS 样式
-     var x: Float? = null//相对于坐标轴刻度线的水平偏移。 默认是:0.
-     var y: Float? = null//相对于坐标轴刻度线的垂直平偏移。 默认是:null.
-     var useHTML: Boolean? = null//HTML渲染
+    var style: AAStyle? = null//轴标签的 CSS 样式
+    var x: Float? = null//相对于坐标轴刻度线的水平偏移。 默认是:0.
+    var y: Float? = null//相对于坐标轴刻度线的垂直平偏移。 默认是:null.
+    var useHTML: Boolean? = null//HTML渲染
 
     fun align(prop: AAChartAlignType): AALabels {
         align = prop.value

+ 10 - 3
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AALang.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AALang.kt

@@ -1,4 +1,12 @@
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+/**
+ * Copyright (C), 2015-2019
+ * FileName: AAChart
+ * Author: AnAn
+ * Date: 2019-08-30 11:49
+ * Description:
+ * History:
+ */
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AALang {
     var resetZoom: String? = null
@@ -13,5 +21,4 @@ class AALang {
         thousandsSep = prop
         return this
     }
-}
-
+}

+ 5 - 5
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AALegend.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AALegend.kt

@@ -6,11 +6,11 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartAlignType
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartLayoutType
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartVerticalAlignType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartAlignType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartLayoutType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartVerticalAlignType
 
 class AALegend {
     private var layout: String? =
@@ -25,7 +25,7 @@ class AALegend {
     private var itemStyle: AAItemStyle? = null
     private var x: Float? = null
     private var y: Float? = null
-    private var floating:Boolean? = null
+    private var floating: Boolean? = null
 
     fun layout(prop: AAChartLayoutType): AALegend {
         layout = prop.value

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAMarker.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAMarker.kt

@@ -6,7 +6,7 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AAMarker {
     private var radius: Float? = null

+ 3 - 4
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAOptions.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAOptions.kt

@@ -6,9 +6,9 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AASeriesElement
+import com.github.aachartmodel.aainfographics.aachartcreator.AASeriesElement
 
 class AAOptions {
     var chart: AAChart? = null
@@ -101,5 +101,4 @@ class AAOptions {
         touchEventEnabled = prop
         return this
     }
-
-}
+}

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAPane.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAPane.kt

@@ -1,4 +1,4 @@
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AAPane {
     var background: AABackground? = null

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAPlotBandsElement.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAPlotBandsElement.kt

@@ -33,7 +33,7 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AAPlotBandsElement {
     private var from: Float? = null

+ 2 - 2
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAPlotLinesElement.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAPlotLinesElement.kt

@@ -33,9 +33,9 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartLineDashStyleType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartLineDashStyleType
 
 
 class AAPlotLinesElement {

+ 4 - 5
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAPlotOptions.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAPlotOptions.kt

@@ -6,10 +6,9 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartType
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AASeriesElement
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartType
 
 class AAPlotOptions {
     var column: AAColumn? = null
@@ -286,8 +285,8 @@ class AAAreaspline {
 }
 
 class AAPie {
-    var type:String? = null
-    var dataLabels:AADataLabels? = null
+    var type: String? = null
+    var dataLabels: AADataLabels? = null
     var size: Float? = null
     var allowPointSelect: Boolean? = null
     var cursor: String? = null

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAScrollablePlotArea.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAScrollablePlotArea.kt

@@ -1,4 +1,4 @@
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AAScrollablePlotArea {
     var minHeight: Int? = null

+ 4 - 6
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AASeries.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AASeries.kt

@@ -6,9 +6,10 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartStackingType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartStackingType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAShadow
 
 class AASeries {
     private var borderRadius: Float? = null
@@ -71,7 +72,4 @@ class AASeries {
         dataLabels = prop
         return this
     }
-
-
-
-}
+}

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAShadow.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAShadow.kt

@@ -6,7 +6,7 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AAShadow {
     private var color: String? = null

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAStates.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAStates.kt

@@ -6,7 +6,7 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel;
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AAStates {
     var hover: AAHover? = null

+ 2 - 2
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAStyle.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAStyle.kt

@@ -6,9 +6,9 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartFontWeightType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartFontWeightType
 
 
 class AAStyle {

+ 3 - 3
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AASubtitle.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AASubtitle.kt

@@ -6,10 +6,10 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartAlignType
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartVerticalAlignType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartAlignType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartVerticalAlignType
 
 
 class AASubtitle {

+ 3 - 3
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AATitle.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AATitle.kt

@@ -6,10 +6,10 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartAlignType
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartVerticalAlignType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartAlignType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartVerticalAlignType
 
 class AATitle {
     private var text: String? = null

+ 2 - 2
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AATooltip.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AATooltip.kt

@@ -33,9 +33,9 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAJSStringPurer
+import com.github.aachartmodel.aainfographics.aatools.AAJSStringPurer
 
 
 class AATooltip {

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAWaterfall.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAWaterfall.kt

@@ -33,7 +33,7 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel;
+package com.github.aachartmodel.aainfographics.aaoptionsmodel;
 
 class AAWaterfall {
     var upColor: String? = null

+ 5 - 3
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAXAxis.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAXAxis.kt

@@ -6,7 +6,7 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AAXAxis {
     var plotBands: Array<AAPlotBandsElement>? = null
@@ -30,10 +30,12 @@ class AAXAxis {
         null //Whether to force the axis to start on a tick. Use this option with the minPadding option to control the axis start. 默认是:false.
     var tickInterval: Int? = null//x轴刻度点间隔数(设置每隔几个点显示一个 X轴的内容:
     var crosshair: AACrosshair? = null //准星线样式设置
-    var tickmarkPlacement: String? = null //本参数只对分类轴有效。 当值为 on 时刻度线将在分类上方显示;当值为 between 时,刻度线将在两个分类中间显示。当 tickInterval 为 1 时,默认是 between,其他情况默认是 on。 默认是:null.
+    var tickmarkPlacement: String? =
+        null //本参数只对分类轴有效。 当值为 on 时刻度线将在分类上方显示;当值为 between 时,刻度线将在两个分类中间显示。当 tickInterval 为 1 时,默认是 between,其他情况默认是 on。 默认是:null.
     var tickWidth: Float? = null//坐标轴刻度线的宽度,设置为 0 时则不显示刻度线
     var tickLength: Float? = null//坐标轴刻度线的长度。 默认是:10.
-    var tickPosition: String? = null //刻度线相对于轴线的位置,可用的值有 inside 和 outside,分别表示在轴线的内部和外部。 默认是:outside.
+    var tickPosition: String? =
+        null //刻度线相对于轴线的位置,可用的值有 inside 和 outside,分别表示在轴线的内部和外部。 默认是:outside.
 
 
     fun plotBands(prop: Array<AAPlotBandsElement>): AAXAxis {

+ 28 - 27
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AAOptionsModel/AAYAxis.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aaoptionsmodel/AAYAxis.kt

@@ -6,38 +6,39 @@
  * Description:
  * History:
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel
+package com.github.aachartmodel.aainfographics.aaoptionsmodel
 
 class AAYAxis {
-     var title: AATitle? = null
-     var plotBands: Array<AAPlotBandsElement>? = null
-     var plotLines: Array<AAPlotLinesElement>? = null
-     var categories: Array<String>? = null
-     var reversed: Boolean? = null
-     var gridLineWidth: Float? = null// y 轴网格线宽度
-     var gridLineColor: String? = null  // y 轴网格线颜色
-     var gridLineDashStyle: String? = null //网格线线条样式,所有可用的线条样式参考:Highcharts线条样式
-     var alternateGridColor: String? = null  //backcolor of every other grid line area
-     var gridLineInterpolation: String? =
+    var title: AATitle? = null
+    var plotBands: Array<AAPlotBandsElement>? = null
+    var plotLines: Array<AAPlotLinesElement>? = null
+    var categories: Array<String>? = null
+    var reversed: Boolean? = null
+    var gridLineWidth: Float? = null// y 轴网格线宽度
+    var gridLineColor: String? = null  // y 轴网格线颜色
+    var gridLineDashStyle: String? = null //网格线线条样式,所有可用的线条样式参考:Highcharts线条样式
+    var alternateGridColor: String? = null  //backcolor of every other grid line area
+    var gridLineInterpolation: String? =
         null //Polar charts only. Whether the grid lines should draw as a polygon with straight lines between categories, or as circles. Can be either circle or polygon. 默认是:null.
-     var labels: AALabels? = null//用于设置 y 轴文字相关的
-     var lineWidth: Float? = null // y 轴线宽度
-     var lineColor: String? = null // y 轴线颜色
-     var off: Float? = null // y 轴线水平偏移
-     var allowDecimals: Boolean? = null //y轴是否允许显示小数
-     var max: Float? = null //y轴最大值
-     var min: Float? = null //y轴最小值(设置为0就不会有负数)
+    var labels: AALabels? = null//用于设置 y 轴文字相关的
+    var lineWidth: Float? = null // y 轴线宽度
+    var lineColor: String? = null // y 轴线颜色
+    var off: Float? = null // y 轴线水平偏移
+    var allowDecimals: Boolean? = null //y轴是否允许显示小数
+    var max: Float? = null //y轴最大值
+    var min: Float? = null //y轴最小值(设置为0就不会有负数)
+
     // var minPadding:   //Padding of the min value relative to the length of the axis. A padding of 0.05 will make a 100px axis 5px longer. This is useful when you don't want the lowest data value to appear on the edge of the plot area. 默认是:0.05.
-     var tickPositions: Array<Any>? = null //自定义Y轴坐标(如:[0, 25, 50, 75 , 100])
-     var visible: Boolean? = null //y轴是否允许显示
-     var opposite: Boolean? =
+    var tickPositions: Array<Any>? = null //自定义Y轴坐标(如:[0, 25, 50, 75 , 100])
+    var visible: Boolean? = null //y轴是否允许显示
+    var opposite: Boolean? =
         null//是否将坐标轴显示在对立面,默认情况下 x 轴是在图表的下方显示,y 轴是在左方,坐标轴显示在对立面后,x 轴是在上方显示,y 轴是在右方显示(即坐标轴会显示在对立面)。该配置一般是用于多坐标轴区分展示,另外在 Highstock 中,y 轴默认是在对立面显示的。 默认是:false.
-     var tickInterval: Int? = null
-     var crosshair: AACrosshair? = null  //准星线样式设置
-     var stackLabels: String? = null
-     var tickWidth: Float? = null//坐标轴刻度线的宽度,设置为 0 时则不显示刻度线
-     var tickLength: Float? = null//坐标轴刻度线的长度。 默认是:10.
-     var tickPosition: String? =
+    var tickInterval: Int? = null
+    var crosshair: AACrosshair? = null  //准星线样式设置
+    var stackLabels: String? = null
+    var tickWidth: Float? = null//坐标轴刻度线的宽度,设置为 0 时则不显示刻度线
+    var tickLength: Float? = null//坐标轴刻度线的长度。 默认是:10.
+    var tickPosition: String? =
         null //刻度线相对于轴线的位置,可用的值有 inside 和 outside,分别表示在轴线的内部和外部。 默认是:outside.
 
 

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AATools/AAColor.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aatools/AAColor.kt

@@ -25,7 +25,7 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator
+package com.github.aachartmodel.aainfographics.aatools
 
 
 object AAColor {

+ 36 - 37
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AATools/AAGradientColor.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aatools/AAGradientColor.kt

@@ -25,9 +25,7 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator
-
-import java.util.HashMap
+package com.github.aachartmodel.aainfographics.aatools
 
 enum class AALinearGradientDirection {
     ToTop,           //⇧⇧⇧⇧⇧⇧
@@ -139,122 +137,123 @@ object AAGradientColor {
 
 
     fun oceanBlueColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#2E3192", "#1BFFFF")
+        return linearGradient(direction, "#2E3192", "#1BFFFF")
     }
 
     fun sanguineColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#D4145A", "#FBB03B")
+        return linearGradient(direction, "#D4145A", "#FBB03B")
     }
 
     fun lusciousLimeColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#009245", "#FCEE21")
+        return linearGradient(direction, "#009245", "#FCEE21")
     }
 
     fun purpleLakeColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#662D8C", "#ED1E79")
+        return linearGradient(direction, "#662D8C", "#ED1E79")
     }
 
     fun freshPapayaColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#ED1C24", "#FCEE21")
+        return linearGradient(direction, "#ED1C24", "#FCEE21")
     }
 
     fun ultramarineColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#00A8C5", "#FFFF7E")
+        return linearGradient(direction, "#00A8C5", "#FFFF7E")
     }
 
     fun pinkSugarColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#D74177", "#FFE98A")
+        return linearGradient(direction, "#D74177", "#FFE98A")
     }
 
     fun lemonDrizzleColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#FB872B", "#D9E021")
+        return linearGradient(direction, "#FB872B", "#D9E021")
     }
 
     fun victoriaPurpleColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#312A6C", "#852D91")
+        return linearGradient(direction, "#312A6C", "#852D91")
     }
 
     fun springGreensColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#009E00", "#FFFF96")
+        return linearGradient(direction, "#009E00", "#FFFF96")
     }
 
     fun mysticMauveColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#B066FE", "#63E2FF")
+        return linearGradient(direction, "#B066FE", "#63E2FF")
     }
 
     fun reflexSilverColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#808080", "#E6E6E6")
+        return linearGradient(direction, "#808080", "#E6E6E6")
     }
 
     fun neonGlowColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#00FFA1", "#00FFFF")
+        return linearGradient(direction, "#00FFA1", "#00FFFF")
     }
 
     fun berrySmoothieColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#8E78FF", "#FC7D7B")
+        return linearGradient(direction, "#8E78FF", "#FC7D7B")
     }
 
     fun newLeafColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#00537E", "#3AA17E")
+        return linearGradient(direction, "#00537E", "#3AA17E")
     }
 
     fun cottonCandyColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#FCA5F1", "#B5FFFF")
+        return linearGradient(direction, "#FCA5F1", "#B5FFFF")
     }
 
     fun pixieDustColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#D585FF", "#00FFEE")
+        return linearGradient(direction, "#D585FF", "#00FFEE")
     }
 
     fun fizzyPeachColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#F24645", "#EBC08D")
+        return linearGradient(direction, "#F24645", "#EBC08D")
     }
 
     fun sweetDreamColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#3A3897", "#A3A1FF")
+        return linearGradient(direction, "#3A3897", "#A3A1FF")
     }
 
     fun firebrickColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#45145A", "#FF5300")
+        return linearGradient(direction, "#45145A", "#FF5300")
     }
 
     fun wroughtIronColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#333333", "#5A5454")
+        return linearGradient(direction, "#333333", "#5A5454")
     }
 
     fun deepSeaColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#4F00BC", "#29ABE2")
+        return linearGradient(direction, "#4F00BC", "#29ABE2")
     }
 
     fun coastalBreezeColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#00B7FF", "#FFFFC7")
+        return linearGradient(direction, "#00B7FF", "#FFFFC7")
     }
 
     fun eveningDelightColor(direction: AALinearGradientDirection): Map<String, Any> {
-        return linearGradient(direction,"#93278F", "#00A99D")
+        return linearGradient(direction, "#93278F", "#00A99D")
     }
 
-     fun linearGradient(
-         startColor: String,
-         endColor: String
-     ): Map<String, Any> {
+    fun linearGradient(
+        startColor: String,
+        endColor: String
+    ): Map<String, Any> {
         return linearGradient(
             AALinearGradientDirection.ToTop,
             startColor,
-            endColor)
+            endColor
+        )
     }
 
-     fun linearGradient(
+    fun linearGradient(
         direction: AALinearGradientDirection,
         startColor: String,
         endColor: String
-     ): Map<String, Any> {
+    ): Map<String, Any> {
         val stopsArr = arrayOf<Any>(
             arrayOf(0, startColor),
             arrayOf(1, endColor)
         )
-        return linearGradient(direction,stopsArr)
-     }
+        return linearGradient(direction, stopsArr)
+    }
 
     fun linearGradient(
         direction: AALinearGradientDirection,
@@ -277,7 +276,7 @@ object AAGradientColor {
      */
     private fun linearGradientMap(
         direction: AALinearGradientDirection
-    ):Map<String,Int> {
+    ): Map<String, Int> {
         when (direction) {
             AALinearGradientDirection.ToTop ->
                 return mapOf("x1" to 0, "y1" to 1, "x2" to 0, "y2" to 0)

+ 1 - 1
app/src/main/java/com/aachartmodel/aainfographics/AAInfographicsLib/AATools/AAJSStringPurer.kt → charts/src/main/java/com/github/aachartmodel/aainfographics/aatools/AAJSStringPurer.kt

@@ -33,7 +33,7 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator
+package com.github.aachartmodel.aainfographics.aatools
 
 
 object AAJSStringPurer {

+ 6 - 0
gradle.properties

@@ -11,5 +11,11 @@ org.gradle.jvmargs=-Xmx1536m
 # This option should only be used with decoupled projects. More details, visit
 # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
 # org.gradle.parallel=true
+# AndroidX package structure to make it clearer which packages are bundled with the
+# Android operating system, and which are packaged with your app's APK
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
+android.useAndroidX=true
+# Automatically convert third-party libraries to use AndroidX
+android.enableJetifier=true
 # Kotlin code style for this project: "official" or "obsolete":
 kotlin.code.style=official

+ 2 - 2
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
-#Tue Oct 13 11:00:18 CST 2020
+#Wed Apr 01 20:07:26 WEST 2020
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-6.6.1-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

+ 38 - 0
sample/build.gradle

@@ -0,0 +1,38 @@
+apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-android-extensions'
+
+android {
+    compileSdkVersion rootProject.ext.compileSdkVersion
+    buildToolsVersion rootProject.ext.buildToolsVersion
+
+    defaultConfig {
+        applicationId "com.github.aachartmodel.aainfographics.demo"
+        minSdkVersion rootProject.ext.minSdkVersion
+        targetSdkVersion rootProject.ext.targetSdkVersion
+        versionCode 1
+        versionName "1.0.0"
+    }
+
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+        }
+    }
+
+    android {
+        lintOptions {
+            abortOnError false
+        }
+    }
+}
+
+dependencies {
+    implementation project(':charts')
+    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10"
+    implementation "androidx.appcompat:appcompat:1.2.0"
+    implementation "androidx.constraintlayout:constraintlayout:2.0.2"
+    implementation "androidx.coordinatorlayout:coordinatorlayout:1.1.0"
+    implementation "com.google.code.gson:gson:2.8.6"
+}

+ 2 - 0
app/proguard-rules.pro → sample/proguard-rules.pro

@@ -19,3 +19,5 @@
 # If you keep the line number information, uncomment this to
 # hide the original source file name.
 #-renamesourcefileattribute SourceFile
+
+-keep class com.github.aachartmodel.aainfographics.** { *; }

+ 34 - 0
sample/src/main/AndroidManifest.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    package="com.github.aachartmodel.aainfographics.demo">
+
+    <application
+        android:allowBackup="true"
+        android:icon="@mipmap/ic_launcher"
+        android:label="@string/app_name"
+        android:roundIcon="@mipmap/ic_launcher_round"
+        android:supportsRtl="true"
+        android:theme="@style/AppTheme"
+        tools:ignore="AllowBackup">
+        <activity android:name=".basiccontent.MainActivity">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name=".additionalcontent.ScrollingUpdateDataActivity" />
+        <activity android:name=".basiccontent.SpecialChartActivity" />
+        <activity android:name=".basiccontent.CustomStyleChartActivity" />
+        <activity android:name=".basiccontent.MixedChartActivity" />
+        <activity android:name=".basiccontent.CommonChartActivity" />
+        <activity android:name=".additionalcontent.JSFormatterFunctionActivity" />
+        <activity android:name=".additionalcontent.DrawChartWithAAOptionsActivity" />
+        <activity android:name=".additionalcontent.EvaluateJSStringFunctionActivity" />
+        <activity android:name=".additionalcontent.HideOrShowChartSeriesActivity" />
+        <activity android:name=".additionalcontent.OnlyRefreshChartDataActivity" />
+        <activity android:name=".additionalcontent.DoubleChartsLinkedWorkActivity" />
+    </application>
+
+</manifest>

+ 42 - 14
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/AdditionalContent/DoubleChartsLinkedWorkActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/DoubleChartsLinkedWorkActivity.kt

@@ -1,13 +1,14 @@
-package com.aachartmodel.aainfographics.ChartsDemo.AdditionalContent
+package com.github.aachartmodel.aainfographics.demo.additionalcontent
 
 import android.os.Bundle
 import android.os.Handler
 import android.os.Looper
-import android.support.v7.app.AppCompatActivity
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.*
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAOptions
-import com.aachartmodel.aainfographics.R
-
+import androidx.appcompat.app.AppCompatActivity
+import com.github.aachartmodel.aainfographics.aachartcreator.*
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAOptions
+import com.github.aachartmodel.aainfographics.aatools.AAColor
+import com.github.aachartmodel.aainfographics.aatools.AAGradientColor
+import com.github.aachartmodel.aainfographics.demo.R
 
 class DoubleChartsLinkedWorkActivity : AppCompatActivity(),
     AAChartView.AAChartViewCallBack {
@@ -89,16 +90,18 @@ class DoubleChartsLinkedWorkActivity : AppCompatActivity(),
             .title("")
             .yAxisTitle("")
             .categories(gradientColorNamesArr)
-            .colorsTheme(gradientColorArr as Array<Any> )
+            .colorsTheme(gradientColorArr as Array<Any>)
             .xAxisReversed(true)
             .yAxisReversed(true)
             .inverted(true)
             .legendEnabled(false)
             .touchEventEnabled(true)
-            .series(arrayOf(
+            .series(
+                arrayOf(
                     AASeriesElement()
                         .name("Tokyo")
-                        .data(arrayOf(
+                        .data(
+                            arrayOf(
                                 211, 183, 157, 133, 111, 91, 73, 57, 43, 31, 21, 13,
                                 211, 183, 157, 133, 111, 91, 73, 57, 43, 31, 21, 13
                             )
@@ -118,12 +121,36 @@ class DoubleChartsLinkedWorkActivity : AppCompatActivity(),
             .yAxisTitle("")
             .legendEnabled(false)
             .yAxisGridLineWidth(0f)
-            .series(arrayOf(
+            .series(
+                arrayOf(
                     AASeriesElement()
                         .name("Tokyo")
-                        .data(arrayOf(
-                            149.9, 171.5, 106.4, 129.2, 144.0, 176.0, 135.6, 188.5, 276.4, 214.1, 95.6, 54.4,
-                            149.9, 171.5, 106.4, 129.2, 144.0, 176.0, 135.6, 188.5, 276.4, 214.1, 95.6, 54.4
+                        .data(
+                            arrayOf(
+                                149.9,
+                                171.5,
+                                106.4,
+                                129.2,
+                                144.0,
+                                176.0,
+                                135.6,
+                                188.5,
+                                276.4,
+                                214.1,
+                                95.6,
+                                54.4,
+                                149.9,
+                                171.5,
+                                106.4,
+                                129.2,
+                                144.0,
+                                176.0,
+                                135.6,
+                                188.5,
+                                276.4,
+                                214.1,
+                                95.6,
+                                54.4
                             )
                         )
                 )
@@ -170,5 +197,6 @@ class DoubleChartsLinkedWorkActivity : AppCompatActivity(),
             aaChartView2?.aa_onlyRefreshTheChartDataWithChartOptionsSeriesArray(
                 aaSeriesElementsArr
             )
-        }    }
+        }
+    }
 }

+ 94 - 0
sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/DrawChartWithAAOptionsActivity.kt

@@ -0,0 +1,94 @@
+/**
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ */
+
+/**
+
+ * -------------------------------------------------------------------------------
+ *
+ *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
+ *
+ * Please contact me on GitHub,if there are any problems encountered in use.
+ * GitHub Issues : https://github.com/AAChartModel/AAChartCore-Kotlin/issues
+ * -------------------------------------------------------------------------------
+ * And if you want to contribute for this project, please contact me as well
+ * GitHub        : https://github.com/AAChartModel
+ * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
+ * JianShu       : http://www.jianshu.com/u/f1e6753d4254
+ * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
+ *
+ * -------------------------------------------------------------------------------
+
+ */
+package com.github.aachartmodel.aainfographics.demo.additionalcontent
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAOptions
+import com.github.aachartmodel.aainfographics.demo.R
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureAAPlotBandsForChart
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureAAPlotLinesForChart
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureDoubleYAxesAndColumnLineMixedChart
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureDoubleYAxesMarketDepthChart
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureDoubleYAxisChartOptions
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureTheMirrorColumnChart
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureTripleYAxesMixedChart
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureXAxisLabelsFontColorAndFontSizeWithHTMLString
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureXAxisLabelsFontColorWithHTMLString
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configureXAxisPlotBand
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.configure_DataLabels_XAXis_YAxis_Legend_Style
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.customAATooltipWithJSFunction
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.customAreaChartTooltipStyleLikeHTMLTable
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.customChartLegendStyle
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.customLineChartDataLabelsFormat
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.customXAxisCrosshairStyle
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.gaugeChartWithPlotBand
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.ChartOptionsComposer.Companion.simpleGaugeChart
+
+class DrawChartWithAAOptionsActivity : AppCompatActivity() {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.activity_draw_chart_with_aaoptions)
+
+        val intent = intent
+        val chartType = intent.getStringExtra("chartType")
+
+        val aaOptions = configureTheChartOptions(chartType!!)
+
+        val aaChartView: AAChartView = findViewById(R.id.AAChartView)
+        aaChartView.aa_drawChartWithChartOptions(aaOptions)
+
+    }
+
+    private fun configureTheChartOptions(chartType: String): AAOptions {
+        when (chartType) {
+            "customLegendStyle" -> return customChartLegendStyle()
+            "AAPlotBandsForChart" -> return configureAAPlotBandsForChart()
+            "AAPlotLinesForChart" -> return configureAAPlotLinesForChart()
+            "customAATooltipWithJSFuntion" -> return customAATooltipWithJSFunction()
+            "customXAxisCrosshairStyle" -> return customXAxisCrosshairStyle()
+            "XAxisLabelsFontColorWithHTMLString" -> return configureXAxisLabelsFontColorWithHTMLString()
+            "XAxisLabelsFontColorAndFontSizeWithHTMLString" -> return configureXAxisLabelsFontColorAndFontSizeWithHTMLString()
+            "_DataLabels_XAXis_YAxis_Legend_Style" -> return configure_DataLabels_XAXis_YAxis_Legend_Style()
+            "XAxisPlotBand" -> return configureXAxisPlotBand()
+            "configureTheMirrorColumnChart" -> return configureTheMirrorColumnChart()
+            "configureDoubleYAxisChartOptions" -> return configureDoubleYAxisChartOptions()
+            "configureTripleYAxesMixedChart" -> return configureTripleYAxesMixedChart()
+            "customLineChartDataLabelsFormat" -> return customLineChartDataLabelsFormat()
+            "configureDoubleYAxesAndColumnLineMixedChart" -> return configureDoubleYAxesAndColumnLineMixedChart()
+            "configureDoubleYAxesMarketDepthChart" -> return configureDoubleYAxesMarketDepthChart()
+            "customAreaChartTooltipStyleLikeHTMLTable" -> return customAreaChartTooltipStyleLikeHTMLTable()
+            "simpleGaugeChart" -> return simpleGaugeChart()
+            "gaugeChartWithPlotBand" -> return gaugeChartWithPlotBand()
+        }
+        return configureAAPlotBandsForChart()
+    }
+}

+ 4 - 3
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/AdditionalContent/EvaluateJSStringFunctionActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/EvaluateJSStringFunctionActivity.kt

@@ -25,11 +25,12 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.ChartsDemo.AdditionalContent
+package com.github.aachartmodel.aainfographics.demo.additionalcontent
 
-import android.support.v7.app.AppCompatActivity
 import android.os.Bundle
-import com.aachartmodel.aainfographics.R
+import androidx.appcompat.app.AppCompatActivity
+import com.github.aachartmodel.aainfographics.demo.R
+
 
 class EvaluateJSStringFunctionActivity : AppCompatActivity() {
 

+ 4 - 3
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/AdditionalContent/HideOrShowChartSeriesActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/HideOrShowChartSeriesActivity.kt

@@ -25,11 +25,12 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.ChartsDemo.AdditionalContent
+package com.github.aachartmodel.aainfographics.demo.additionalcontent
 
-import android.support.v7.app.AppCompatActivity
 import android.os.Bundle
-import com.aachartmodel.aainfographics.R
+import androidx.appcompat.app.AppCompatActivity
+import com.github.aachartmodel.aainfographics.demo.R
+
 
 class HideOrShowChartSeriesActivity : AppCompatActivity() {
 

+ 21 - 20
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/AdditionalContent/JSFormatterFunctionActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/JSFormatterFunctionActivity.kt

@@ -25,25 +25,26 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.ChartsDemo.AdditionalContent
+package com.github.aachartmodel.aainfographics.demo.additionalcontent
 
-import android.support.v7.app.AppCompatActivity
 import android.os.Bundle
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAOptions
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customAreaChartTooltipStyleWithFormatterFunction1
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customAreaChartTooltipStyleWithFormatterFunction2
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customAreaChartTooltipStyleWithFormatterFunction3
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customAreaChartTooltipStyleWithFormatterFunction4
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customArearangeChartTooltip
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customBoxplotTooltipContent
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customDoubleXAxesChart
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customLineChartOriginalPointPositionByConfiguringXAxisFormatterAndTooltipFormatter
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customStackedAndGroupedColumnChartTooltip
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customTooltipWhichDataSourceComeFromOutSideRatherThanSeries
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customYAxisLabels
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomTooltipComposer.Companion.customYAxisLabels2
-import com.aachartmodel.aainfographics.R
+import androidx.appcompat.app.AppCompatActivity
+
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAOptions
+import com.github.aachartmodel.aainfographics.demo.R
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customAreaChartTooltipStyleWithFormatterFunction1
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customAreaChartTooltipStyleWithFormatterFunction2
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customAreaChartTooltipStyleWithFormatterFunction3
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customAreaChartTooltipStyleWithFormatterFunction4
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customArearangeChartTooltip
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customBoxplotTooltipContent
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customDoubleXAxesChart
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customLineChartOriginalPointPositionByConfiguringXAxisFormatterAndTooltipFormatter
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customStackedAndGroupedColumnChartTooltip
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customTooltipWhichDataSourceComeFromOutSideRatherThanSeries
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customYAxisLabels
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomTooltipComposer.Companion.customYAxisLabels2
 
 class JSFormatterFunctionActivity : AppCompatActivity() {
 
@@ -53,7 +54,7 @@ class JSFormatterFunctionActivity : AppCompatActivity() {
         val intent = intent
         val chartType = intent.getStringExtra("chartType")
 
-        val aaOptions = configureTheChartOptions(chartType)
+        val aaOptions = configureTheChartOptions(chartType!!)
 
         val aaChartView: AAChartView = findViewById(R.id.AAChartView)
         aaChartView.aa_drawChartWithChartOptions(aaOptions)
@@ -72,9 +73,9 @@ class JSFormatterFunctionActivity : AppCompatActivity() {
             "customStackedAndGroupedColumnChartTooltip" -> return customStackedAndGroupedColumnChartTooltip()
             "customDoubleXAxesChart" -> return customDoubleXAxesChart()
             "customArearangeChartTooltip" -> return customArearangeChartTooltip()
-             "customLineChartOriginalPointPositionByConfiguringXAxisFormatterAndTooltipFormatter" ->
+            "customLineChartOriginalPointPositionByConfiguringXAxisFormatterAndTooltipFormatter" ->
                 return customLineChartOriginalPointPositionByConfiguringXAxisFormatterAndTooltipFormatter()
-             "customTooltipWhichDataSourceComeFromOutSideRatherThanSeries" ->
+            "customTooltipWhichDataSourceComeFromOutSideRatherThanSeries" ->
                 return customTooltipWhichDataSourceComeFromOutSideRatherThanSeries()
 
         }

+ 20 - 17
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/AdditionalContent/OnlyRefreshChartDataActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/OnlyRefreshChartDataActivity.kt

@@ -25,18 +25,19 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.ChartsDemo.AdditionalContent
+package com.github.aachartmodel.aainfographics.demo.additionalcontent
 
 import android.os.Bundle
 import android.os.Handler
-import android.support.v7.app.AppCompatActivity
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.*
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAOptionsModel.AAOptions
-import com.aachartmodel.aainfographics.R
+import androidx.appcompat.app.AppCompatActivity
+
+import com.github.aachartmodel.aainfographics.aachartcreator.*
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAOptions
+import com.github.aachartmodel.aainfographics.aatools.AAGradientColor
+import com.github.aachartmodel.aainfographics.demo.R
 import kotlin.math.cos
 import kotlin.math.sin
 
-
 class OnlyRefreshChartDataActivity : AppCompatActivity() {
     private var aaChartModel = AAChartModel()
     private var aaChartView: AAChartView? = null
@@ -79,16 +80,19 @@ class OnlyRefreshChartDataActivity : AppCompatActivity() {
         val intent = intent
         val chartType = intent.getStringExtra("chartType")
         return AAChartModel()
-            .chartType(convertStringToEnum(chartType))
+            .chartType(convertStringToEnum(chartType!!))
             .xAxisVisible(true)
             .yAxisVisible(false)
             .title("")
             .yAxisTitle("摄氏度")
-            .colorsTheme(arrayOf(
-                AAGradientColor.sanguineColor(),
-                AAGradientColor.deepSeaColor(),
-                AAGradientColor.neonGlowColor(),
-                AAGradientColor.wroughtIronColor()))
+            .colorsTheme(
+                arrayOf(
+                    AAGradientColor.sanguineColor(),
+                    AAGradientColor.deepSeaColor(),
+                    AAGradientColor.neonGlowColor(),
+                    AAGradientColor.wroughtIronColor()
+                )
+            )
             .stacking(AAChartStackingType.Normal)
     }
 
@@ -138,25 +142,24 @@ class OnlyRefreshChartDataActivity : AppCompatActivity() {
         )
     }
 
-    private fun  repeatUpdateChartData() {
+    private fun repeatUpdateChartData() {
         val mStartVideoHandler = Handler()
 
-        val mStartVideoRunnable: Runnable = object: Runnable {
+        val mStartVideoRunnable: Runnable = object : Runnable {
 
             override fun run() {
                 val seriesArr = configureChartSeriesArray()
                 aaChartView!!.aa_onlyRefreshTheChartDataWithChartOptionsSeriesArray(seriesArr)
 
-                mStartVideoHandler.postDelayed(this,1000)
+                mStartVideoHandler.postDelayed(this, 1000)
                 updateTimes += 1
 
                 print("图表数据正在刷新,刷新次数为:$updateTimes")
             }
         }
 
-        mStartVideoHandler.postDelayed(mStartVideoRunnable,2000)
+        mStartVideoHandler.postDelayed(mStartVideoRunnable, 2000)
     }
 
 
-
 }

+ 5 - 4
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/AdditionalContent/ScrollingUpdateDataActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/additionalcontent/ScrollingUpdateDataActivity.kt

@@ -1,8 +1,9 @@
-package com.aachartmodel.aainfographics.ChartsDemo.AdditionalContent
+package com.github.aachartmodel.aainfographics.demo.additionalcontent
 
-import android.support.v7.app.AppCompatActivity
 import android.os.Bundle
-import com.aachartmodel.aainfographics.R
+import androidx.appcompat.app.AppCompatActivity
+import com.github.aachartmodel.aainfographics.demo.R
+
 
 class ScrollingUpdateDataActivity : AppCompatActivity() {
 
@@ -10,4 +11,4 @@ class ScrollingUpdateDataActivity : AppCompatActivity() {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_scrolling_update_data)
     }
-}
+}

+ 255 - 36
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/BasicContent/CommonChartActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/CommonChartActivity.kt

@@ -25,17 +25,19 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.ChartsDemo.BasicContent
+package com.github.aachartmodel.aainfographics.demo.basiccontent
 
-import android.support.v7.app.AppCompatActivity
 import android.os.Bundle
 import android.view.View
 import android.widget.CompoundButton
 import android.widget.RadioGroup
 import android.widget.Switch
-import com.aachartmodel.aainfographics.R
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAMoveOverEventMessageModel
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.*
+import androidx.appcompat.app.AppCompatActivity
+
+import com.github.aachartmodel.aainfographics.aachartcreator.*
+import com.github.aachartmodel.aainfographics.aatools.AAGradientColor
+import com.github.aachartmodel.aainfographics.aatools.AALinearGradientDirection
+import com.github.aachartmodel.aainfographics.demo.R
 import com.google.gson.Gson
 import kotlinx.android.synthetic.main.activity_common_chart.*
 
@@ -51,8 +53,6 @@ class CommonChartActivity : AppCompatActivity(), RadioGroup.OnCheckedChangeListe
 
         setUpAAChartView()
         setUpRadioButtonsAndSwitches()
-
-
     }
 
     private fun setUpAAChartView() {
@@ -69,7 +69,7 @@ class CommonChartActivity : AppCompatActivity(), RadioGroup.OnCheckedChangeListe
         val intent = intent
         val chartType = intent.getStringExtra("chartType")
         val position = intent.getIntExtra("position", 0)
-        val chartTypeEnum = convertStringToEnum(chartType)
+        val chartTypeEnum = convertStringToEnum(chartType!!)
 
         aaChartModel
             .chartType(chartTypeEnum)
@@ -78,30 +78,92 @@ class CommonChartActivity : AppCompatActivity(), RadioGroup.OnCheckedChangeListe
             .yAxisGridLineWidth(0f)
             .legendEnabled(false)
             .touchEventEnabled(true)
-            .series(arrayOf(
-                AASeriesElement()
-                    .name("Tokyo")
-                    .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6)),
-                AASeriesElement()
-                    .name("NewYork")
-                    .data(arrayOf(0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5)),
-                AASeriesElement()
-                    .name("London")
-                    .data(arrayOf(0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0)),
-                AASeriesElement()
-                    .name("Berlin")
-                    .data(arrayOf(3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8))
-            )
+            .series(
+                arrayOf(
+                    AASeriesElement()
+                        .name("Tokyo")
+                        .data(
+                            arrayOf(
+                                7.0,
+                                6.9,
+                                9.5,
+                                14.5,
+                                18.2,
+                                21.5,
+                                25.2,
+                                26.5,
+                                23.3,
+                                18.3,
+                                13.9,
+                                9.6
+                            )
+                        ),
+                    AASeriesElement()
+                        .name("NewYork")
+                        .data(
+                            arrayOf(
+                                0.2,
+                                0.8,
+                                5.7,
+                                11.3,
+                                17.0,
+                                22.0,
+                                24.8,
+                                24.1,
+                                20.1,
+                                14.1,
+                                8.6,
+                                2.5
+                            )
+                        ),
+                    AASeriesElement()
+                        .name("London")
+                        .data(
+                            arrayOf(
+                                0.9,
+                                0.6,
+                                3.5,
+                                8.4,
+                                13.5,
+                                17.0,
+                                18.6,
+                                17.9,
+                                14.3,
+                                9.0,
+                                3.9,
+                                1.0
+                            )
+                        ),
+                    AASeriesElement()
+                        .name("Berlin")
+                        .data(
+                            arrayOf(
+                                3.9,
+                                4.2,
+                                5.7,
+                                8.5,
+                                11.9,
+                                15.2,
+                                17.0,
+                                16.6,
+                                14.2,
+                                10.3,
+                                6.6,
+                                4.8
+                            )
+                        )
+                )
             )
 
-        configureTheStyleForDifferentTypeChart(chartType,position)
+        configureTheStyleForDifferentTypeChart(chartType, position)
 
         return aaChartModel
     }
 
     private fun configureTheStyleForDifferentTypeChart(chartType: String, position: Int) {
         if ((chartType == AAChartType.Area.value || chartType == AAChartType.Line.value)
-            && (position == 4 || position == 5)) {
+            && (position == 4 || position == 5)
+        ) {
             configureStepAreaChartAndStepLineChartStyle()
         } else if (chartType == AAChartType.Column.value || chartType == AAChartType.Bar.value) {
             configureColumnChartAndBarChartStyle()
@@ -116,12 +178,42 @@ class CommonChartActivity : AppCompatActivity(), RadioGroup.OnCheckedChangeListe
         val element1 = AASeriesElement()
             .name("Tokyo")
             .step(true)
-            .data(arrayOf(149.9, 171.5, 106.4, 129.2, 144.0, 176.0, 135.6, 188.5, 276.4, 214.1, 95.6, 54.4))
+            .data(
+                arrayOf(
+                    149.9,
+                    171.5,
+                    106.4,
+                    129.2,
+                    144.0,
+                    176.0,
+                    135.6,
+                    188.5,
+                    276.4,
+                    214.1,
+                    95.6,
+                    54.4
+                )
+            )
 
         val element2 = AASeriesElement()
             .name("NewYork")
             .step(true)
-            .data(arrayOf(83.6, 78.8, 188.5, 93.4, 106.0, 84.5, 105.0, 104.3, 131.2, 153.5, 226.6, 192.3))
+            .data(
+                arrayOf(
+                    83.6,
+                    78.8,
+                    188.5,
+                    93.4,
+                    106.0,
+                    84.5,
+                    105.0,
+                    104.3,
+                    131.2,
+                    153.5,
+                    226.6,
+                    192.3
+                )
+            )
 
         val element3 = AASeriesElement()
             .name("London")
@@ -133,13 +225,28 @@ class CommonChartActivity : AppCompatActivity(), RadioGroup.OnCheckedChangeListe
 
     private fun configureColumnChartAndBarChartStyle() {
         aaChartModel
-            .categories(arrayOf("Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Spe", "Oct", "Nov", "Dec"))
+            .categories(
+                arrayOf(
+                    "Jan",
+                    "Feb",
+                    "Mar",
+                    "Apr",
+                    "May",
+                    "Jun",
+                    "July",
+                    "Aug",
+                    "Spe",
+                    "Oct",
+                    "Nov",
+                    "Dec"
+                )
+            )
             .colorsTheme(arrayOf("#fe117c", "#ffc069", "#06caf4", "#7dffc0"))
             .animationType(AAChartAnimationType.EaseInCubic)
             .animationDuration(1200)
     }
 
-    private fun configureAreaChartAndAreasplineChartStyle(chartType:String) {
+    private fun configureAreaChartAndAreasplineChartStyle(chartType: String) {
         aaChartModel
             .animationType(AAChartAnimationType.EaseOutQuart)
             .markerRadius(5f)
@@ -155,19 +262,127 @@ class CommonChartActivity : AppCompatActivity(), RadioGroup.OnCheckedChangeListe
 
             val element1 = AASeriesElement()
                 .name("Predefined symbol")
-                .data(arrayOf(0.45, 0.43, 0.50, 0.55, 0.58, 0.62, 0.83, 0.39, 0.56, 0.67, 0.50, 0.34, 0.50, 0.67, 0.58, 0.29, 0.46, 0.23, 0.47, 0.46, 0.38, 0.56, 0.48, 0.36))
+                .data(
+                    arrayOf(
+                        0.45,
+                        0.43,
+                        0.50,
+                        0.55,
+                        0.58,
+                        0.62,
+                        0.83,
+                        0.39,
+                        0.56,
+                        0.67,
+                        0.50,
+                        0.34,
+                        0.50,
+                        0.67,
+                        0.58,
+                        0.29,
+                        0.46,
+                        0.23,
+                        0.47,
+                        0.46,
+                        0.38,
+                        0.56,
+                        0.48,
+                        0.36
+                    )
+                )
 
             val element2 = AASeriesElement()
                 .name("Image symbol")
-                .data(arrayOf(0.38, 0.31, 0.32, 0.32, 0.64, 0.66, 0.86, 0.47, 0.52, 0.75, 0.52, 0.56, 0.54, 0.60, 0.46, 0.63, 0.54, 0.51, 0.58, 0.64, 0.60, 0.45, 0.36, 0.67))
+                .data(
+                    arrayOf(
+                        0.38,
+                        0.31,
+                        0.32,
+                        0.32,
+                        0.64,
+                        0.66,
+                        0.86,
+                        0.47,
+                        0.52,
+                        0.75,
+                        0.52,
+                        0.56,
+                        0.54,
+                        0.60,
+                        0.46,
+                        0.63,
+                        0.54,
+                        0.51,
+                        0.58,
+                        0.64,
+                        0.60,
+                        0.45,
+                        0.36,
+                        0.67
+                    )
+                )
 
             val element3 = AASeriesElement()
                 .name("Base64 symbol (*)")
-                .data(arrayOf(0.46, 0.32, 0.53, 0.58, 0.86, 0.68, 0.85, 0.73, 0.69, 0.71, 0.91, 0.74, 0.60, 0.50, 0.39, 0.67, 0.55, 0.49, 0.65, 0.45, 0.64, 0.47, 0.63, 0.64))
+                .data(
+                    arrayOf(
+                        0.46,
+                        0.32,
+                        0.53,
+                        0.58,
+                        0.86,
+                        0.68,
+                        0.85,
+                        0.73,
+                        0.69,
+                        0.71,
+                        0.91,
+                        0.74,
+                        0.60,
+                        0.50,
+                        0.39,
+                        0.67,
+                        0.55,
+                        0.49,
+                        0.65,
+                        0.45,
+                        0.64,
+                        0.47,
+                        0.63,
+                        0.64
+                    )
+                )
 
             val element4 = AASeriesElement()
                 .name("Custom symbol")
-                .data(arrayOf(0.60, 0.51, 0.52, 0.53, 0.64, 0.84, 0.65, 0.68, 0.63, 0.47, 0.72, 0.60, 0.65, 0.74, 0.66, 0.65, 0.71, 0.59, 0.65, 0.77, 0.52, 0.53, 0.58, 0.53))
+                .data(
+                    arrayOf(
+                        0.60,
+                        0.51,
+                        0.52,
+                        0.53,
+                        0.64,
+                        0.84,
+                        0.65,
+                        0.68,
+                        0.63,
+                        0.47,
+                        0.72,
+                        0.60,
+                        0.65,
+                        0.74,
+                        0.66,
+                        0.65,
+                        0.71,
+                        0.59,
+                        0.65,
+                        0.77,
+                        0.52,
+                        0.53,
+                        0.58,
+                        0.53
+                    )
+                )
 
 
             aaChartModel
@@ -232,7 +447,8 @@ class CommonChartActivity : AppCompatActivity(), RadioGroup.OnCheckedChangeListe
         radioGroup2.setOnCheckedChangeListener(this)
 
         if (aaChartModel.chartType == AAChartType.Bar
-            || aaChartModel.chartType == AAChartType.Column) {
+            || aaChartModel.chartType == AAChartType.Column
+        ) {
             symbol1.text = "Rect Corner"
             symbol2.text = "Round Corner"
             symbol3.text = "Sharp Corner"
@@ -278,7 +494,8 @@ class CommonChartActivity : AppCompatActivity(), RadioGroup.OnCheckedChangeListe
             }
         } else {
             if (aaChartModel.chartType == AAChartType.Bar
-                || aaChartModel.chartType == AAChartType.Column) {
+                || aaChartModel.chartType == AAChartType.Column
+            ) {
                 when (group.checkedRadioButtonId) {
                     R.id.symbol1 -> aaChartModel.borderRadius(0f)
                     R.id.symbol2 -> aaChartModel.borderRadius(5f)
@@ -315,10 +532,12 @@ class CommonChartActivity : AppCompatActivity(), RadioGroup.OnCheckedChangeListe
         println("🔥图表加载完成回调方法 ")
     }
 
-    override fun chartViewMoveOverEventMessage(aaChartView: AAChartView, messageModel: AAMoveOverEventMessageModel) {
+    override fun chartViewMoveOverEventMessage(
+        aaChartView: AAChartView,
+        messageModel: AAMoveOverEventMessageModel
+    ) {
         val gson = Gson()
         println("🚀move over event message " + gson.toJson(messageModel))
-
     }
 }
 

+ 26 - 25
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/BasicContent/CustomStyleChartActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/CustomStyleChartActivity.kt

@@ -25,14 +25,15 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.ChartsDemo.BasicContent
+package com.github.aachartmodel.aainfographics.demo.basiccontent
 
-import android.support.v7.app.AppCompatActivity
 import android.os.Bundle
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.CustomStyleChartComposer
-import com.aachartmodel.aainfographics.R
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartModel
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
+import androidx.appcompat.app.AppCompatActivity
+
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartModel
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
+import com.github.aachartmodel.aainfographics.demo.R
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.CustomStyleChartComposer
 
 class CustomStyleChartActivity : AppCompatActivity() {
 
@@ -45,7 +46,7 @@ class CustomStyleChartActivity : AppCompatActivity() {
         val intent = intent
         val chartType = intent.getStringExtra("chartType")
 
-        aaChartModel = configureTheAAChartModel(chartType)
+        aaChartModel = configureTheAAChartModel(chartType!!)
 
         val aaChartView: AAChartView = findViewById(R.id.AAChartView)
         aaChartView.aa_drawChartWithChartModel(aaChartModel!!)
@@ -54,41 +55,41 @@ class CustomStyleChartActivity : AppCompatActivity() {
     private fun configureTheAAChartModel(chartType: String): AAChartModel {
         when (chartType) {
             "colorfulChart" ->
-            return CustomStyleChartComposer.configureColorfulChart()
+                return CustomStyleChartComposer.configureColorfulChart()
             "gradientColorfulChart" ->
-            return CustomStyleChartComposer.configureColorfulGradientColorChart()
+                return CustomStyleChartComposer.configureColorfulGradientColorChart()
             "discontinuousDataChart" ->
-            return CustomStyleChartComposer.configureDiscontinuousDataChart()
+                return CustomStyleChartComposer.configureDiscontinuousDataChart()
             "colorfulColumnChart" ->
-            return CustomStyleChartComposer.configureColorfulColumnChart()
+                return CustomStyleChartComposer.configureColorfulColumnChart()
             "nightingaleRoseChart" ->
-            return CustomStyleChartComposer.configureNightingaleRoseChart()
+                return CustomStyleChartComposer.configureNightingaleRoseChart()
             "chartWithShadowStyle" ->
-            return CustomStyleChartComposer.configureChartWithShadowStyle()
+                return CustomStyleChartComposer.configureChartWithShadowStyle()
             "colorfulGradientAreaChart" ->
-            return CustomStyleChartComposer.configureColorfulGradientAreaChart()
+                return CustomStyleChartComposer.configureColorfulGradientAreaChart()
             "colorfulGradientSplineChart" ->
-            return CustomStyleChartComposer.configureColorfulGradientSplineChart()
+                return CustomStyleChartComposer.configureColorfulGradientSplineChart()
             "gradientColorAreasplineChart" ->
-            return CustomStyleChartComposer.configureGradientColorAreasplineChart()
+                return CustomStyleChartComposer.configureGradientColorAreasplineChart()
             "SpecialStyleMarkerOfSingleDataElementChart" ->
-            return CustomStyleChartComposer.configureSpecialStyleMarkerOfSingleDataElementChart()
+                return CustomStyleChartComposer.configureSpecialStyleMarkerOfSingleDataElementChart()
             "SpecialStyleColumnOfSingleDataElementChart" ->
-            return CustomStyleChartComposer.configureSpecialStyleColumnOfSingleDataElementChart()
+                return CustomStyleChartComposer.configureSpecialStyleColumnOfSingleDataElementChart()
             "AreaChartThreshold" ->
-            return CustomStyleChartComposer.configureAreaChartThreshold()
+                return CustomStyleChartComposer.configureAreaChartThreshold()
             "customScatterChartMarkerSymbolContent" ->
-            return CustomStyleChartComposer.customScatterChartMarkerSymbolContent()
+                return CustomStyleChartComposer.customScatterChartMarkerSymbolContent()
             "customLineChartMarkerSymbolContent" ->
-            return CustomStyleChartComposer.customLineChartMarkerSymbolContent()
+                return CustomStyleChartComposer.customLineChartMarkerSymbolContent()
             "TriangleRadarChart" ->
-            return CustomStyleChartComposer.configureTriangleRadarChart()
+                return CustomStyleChartComposer.configureTriangleRadarChart()
             "QuadrangleRadarChart" ->
-            return CustomStyleChartComposer.configureQuadrangleRadarChart()
+                return CustomStyleChartComposer.configureQuadrangleRadarChart()
             "PentagonRadarChart" ->
-            return CustomStyleChartComposer.configurePentagonRadarChart()
+                return CustomStyleChartComposer.configurePentagonRadarChart()
             "HexagonRadarChart" ->
-            return CustomStyleChartComposer.configureHexagonRadarChart()
+                return CustomStyleChartComposer.configureHexagonRadarChart()
         }
         return CustomStyleChartComposer.configureColorfulChart()
     }

+ 10 - 17
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/BasicContent/MainActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/MainActivity.kt

@@ -25,21 +25,18 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics
+package com.github.aachartmodel.aainfographics.demo.basiccontent
 
 import android.content.Intent
 import android.os.Bundle
-import android.support.v7.app.AppCompatActivity
 import android.view.View
 import android.widget.AdapterView.OnItemClickListener
 import android.widget.ArrayAdapter
 import android.widget.ListView
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartType
-import com.aachartmodel.aainfographics.ChartsDemo.AdditionalContent.*
-import com.aachartmodel.aainfographics.ChartsDemo.BasicContent.CommonChartActivity
-import com.aachartmodel.aainfographics.ChartsDemo.BasicContent.CustomStyleChartActivity
-import com.aachartmodel.aainfographics.ChartsDemo.BasicContent.MixedChartActivity
-import com.aachartmodel.aainfographics.ChartsDemo.BasicContent.SpecialChartActivity
+import androidx.appcompat.app.AppCompatActivity
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartType
+import com.github.aachartmodel.aainfographics.demo.R
+import com.github.aachartmodel.aainfographics.demo.additionalcontent.*
 
 class MainActivity : AppCompatActivity() {
 
@@ -145,7 +142,7 @@ class MainActivity : AppCompatActivity() {
         /*Double Charts Linked Work---双表联动*/
         "doubleChartsLinkedWork----------------------------"
 
-        )
+    )
 
     private var chartTypeArr = arrayOf(
         /*基础类型图表*/
@@ -280,7 +277,7 @@ class MainActivity : AppCompatActivity() {
                     goToCustomTooltipWithJSFunctionActivity(position)
                 } else if (position <= 89) { /*eval JS Function*/
                     goToEvaluateJSStringFunctionActivity(position)
-                }else { /*Double Charts Linked Work*/
+                } else { /*Double Charts Linked Work*/
                     goToDoubleChartsLinkedWorkActivity(position)
                 }
             }
@@ -351,14 +348,10 @@ class MainActivity : AppCompatActivity() {
     }
 
     private fun goToDoubleChartsLinkedWorkActivity(position: Int) {
-        val intent = Intent(this, DoubleChartsLinkedWorkActivity::class.java
+        val intent = Intent(
+            this, DoubleChartsLinkedWorkActivity::class.java
         )
         intent.putExtra("chartType", chartTypeArr[position])
         startActivity(intent)
     }
-
-
-}
-
-
-
+}

+ 8 - 7
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/BasicContent/MixedChartActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/MixedChartActivity.kt

@@ -25,14 +25,15 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.ChartsDemo.BasicContent
+package com.github.aachartmodel.aainfographics.demo.basiccontent
 
-import android.support.v7.app.AppCompatActivity
 import android.os.Bundle
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.MixedChartComposer
-import com.aachartmodel.aainfographics.R
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartModel
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
+import androidx.appcompat.app.AppCompatActivity
+
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartModel
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
+import com.github.aachartmodel.aainfographics.demo.R
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.MixedChartComposer
 
 class MixedChartActivity : AppCompatActivity() {
     private var aaChartModel: AAChartModel? = null
@@ -45,7 +46,7 @@ class MixedChartActivity : AppCompatActivity() {
         val intent = intent
         val chartType = intent.getStringExtra("chartType")
 
-        this.aaChartModel = configureTheAAChartModel(chartType)
+        this.aaChartModel = configureTheAAChartModel(chartType!!)
 
         aaChartModel = configureTheAAChartModel(chartType)
         val aaChartView: AAChartView = findViewById(R.id.AAChartView)

+ 24 - 23
app/src/main/java/com/aachartmodel/aainfographics/ChartsDemo/BasicContent/SpecialChartActivity.kt → sample/src/main/java/com/github/aachartmodel/aainfographics/demo/basiccontent/SpecialChartActivity.kt

@@ -25,15 +25,16 @@
  * -------------------------------------------------------------------------------
 
  */
-package com.aachartmodel.aainfographics.ChartsDemo.BasicContent
+package com.github.aachartmodel.aainfographics.demo.basiccontent
 
-import android.support.v7.app.AppCompatActivity
 import android.os.Bundle
-import com.aachartmodel.aainfographics.ChartsDemo.ChartComposer.SpecialChartComposer
-import com.aachartmodel.aainfographics.R
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartModel
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartType
-import com.aachartmodel.aainfographics.AAInfographicsLib.AAChartCreator.AAChartView
+import androidx.appcompat.app.AppCompatActivity
+
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartModel
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartType
+import com.github.aachartmodel.aainfographics.aachartcreator.AAChartView
+import com.github.aachartmodel.aainfographics.demo.R
+import com.github.aachartmodel.aainfographics.demo.chartcomposer.SpecialChartComposer
 
 class SpecialChartActivity : AppCompatActivity() {
 
@@ -46,28 +47,28 @@ class SpecialChartActivity : AppCompatActivity() {
         val intent = intent
         val chartType = intent.getStringExtra("chartType")
 
-        aaChartModel = configureChartModelWithChartType(chartType)
+        aaChartModel = configureChartModelWithChartType(chartType!!)
         val aaChartView: AAChartView = findViewById(R.id.AAChartView)
         aaChartView.aa_drawChartWithChartModel(aaChartModel!!)
     }
 
     private fun configureChartModelWithChartType(chartType: String): AAChartModel? {
         when (chartType) {
-            AAChartType.Column.value  -> return SpecialChartComposer.configurePolarColumnChart()
-            AAChartType.Pie.value  -> return SpecialChartComposer.configurePieChart()
-            AAChartType.Bubble.value  -> return SpecialChartComposer.configureBubbleChart()
-            AAChartType.Scatter.value  -> return SpecialChartComposer.configureScatterChart()
-            AAChartType.Arearange.value  -> return SpecialChartComposer.configureArearangeChart()
-            AAChartType.Areasplinerange.value  -> return SpecialChartComposer.configureAreasplinerangeChart()
-            AAChartType.Columnrange.value  -> return SpecialChartComposer.configureColumnrangeChart()
-            AAChartType.Line.value  -> return SpecialChartComposer.configureStepLineChart()
-            AAChartType.Area.value  -> return SpecialChartComposer.configureStepAreaChart()
-            AAChartType.Boxplot.value  -> return SpecialChartComposer.configureBoxplotChart()
-            AAChartType.Waterfall.value  -> return SpecialChartComposer.configureWaterfallChart()
-            AAChartType.Pyramid.value  -> return SpecialChartComposer.configurePyramidChart()
-            AAChartType.Funnel.value  -> return SpecialChartComposer.configureFunnelChart()
-            AAChartType.Errorbar.value -> return  SpecialChartComposer.configureErrorbarChart()
-            else  -> {
+            AAChartType.Column.value -> return SpecialChartComposer.configurePolarColumnChart()
+            AAChartType.Pie.value -> return SpecialChartComposer.configurePieChart()
+            AAChartType.Bubble.value -> return SpecialChartComposer.configureBubbleChart()
+            AAChartType.Scatter.value -> return SpecialChartComposer.configureScatterChart()
+            AAChartType.Arearange.value -> return SpecialChartComposer.configureArearangeChart()
+            AAChartType.Areasplinerange.value -> return SpecialChartComposer.configureAreasplinerangeChart()
+            AAChartType.Columnrange.value -> return SpecialChartComposer.configureColumnrangeChart()
+            AAChartType.Line.value -> return SpecialChartComposer.configureStepLineChart()
+            AAChartType.Area.value -> return SpecialChartComposer.configureStepAreaChart()
+            AAChartType.Boxplot.value -> return SpecialChartComposer.configureBoxplotChart()
+            AAChartType.Waterfall.value -> return SpecialChartComposer.configureWaterfallChart()
+            AAChartType.Pyramid.value -> return SpecialChartComposer.configurePyramidChart()
+            AAChartType.Funnel.value -> return SpecialChartComposer.configureFunnelChart()
+            AAChartType.Errorbar.value -> return SpecialChartComposer.configureErrorbarChart()
+            else -> {
             }
         }
 

+ 1984 - 0
sample/src/main/java/com/github/aachartmodel/aainfographics/demo/chartcomposer/ChartOptionsComposer.kt

@@ -0,0 +1,1984 @@
+/**
+ * Copyright (C), 2015-2019
+ * FileName: ChartOptionsComposer
+ * Author: ios-fn
+ * Date: 2019-06-16 18:56
+ * Description:
+ * History:
+ */
+/**
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ */
+
+/**
+
+ * -------------------------------------------------------------------------------
+ *
+ *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
+ *
+ * Please contact me on GitHub,if there are any problems encountered in use.
+ * GitHub Issues : https://github.com/AAChartModel/AAChartCore-Kotlin/issues
+ * -------------------------------------------------------------------------------
+ * And if you want to contribute for this project, please contact me as well
+ * GitHub        : https://github.com/AAChartModel
+ * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
+ * JianShu       : http://www.jianshu.com/u/f1e6753d4254
+ * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
+ *
+ * -------------------------------------------------------------------------------
+
+ */
+package com.github.aachartmodel.aainfographics.demo.chartcomposer
+
+import com.github.aachartmodel.aainfographics.aachartcreator.*
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.*
+import com.github.aachartmodel.aainfographics.aatools.AAColor
+import com.github.aachartmodel.aainfographics.aatools.AAGradientColor
+import com.github.aachartmodel.aainfographics.aatools.AALinearGradientDirection
+
+class ChartOptionsComposer {
+    companion object {
+
+        fun customChartLegendStyle(): AAOptions {
+            val element1 = AASeriesElement()
+                .name("Predefined symbol")
+                .data(
+                    arrayOf(
+                        0.45,
+                        0.43,
+                        0.50,
+                        0.55,
+                        0.58,
+                        0.62,
+                        0.83,
+                        0.39,
+                        0.56,
+                        0.67,
+                        0.50,
+                        0.34,
+                        0.50,
+                        0.67,
+                        0.58,
+                        0.29,
+                        0.46,
+                        0.23,
+                        0.47,
+                        0.46,
+                        0.38,
+                        0.56,
+                        0.48,
+                        0.36
+                    )
+                )
+
+            val element2 = AASeriesElement()
+                .name("Image symbol")
+                .data(
+                    arrayOf(
+                        0.38,
+                        0.31,
+                        0.32,
+                        0.32,
+                        0.64,
+                        0.66,
+                        0.86,
+                        0.47,
+                        0.52,
+                        0.75,
+                        0.52,
+                        0.56,
+                        0.54,
+                        0.60,
+                        0.46,
+                        0.63,
+                        0.54,
+                        0.51,
+                        0.58,
+                        0.64,
+                        0.60,
+                        0.45,
+                        0.36,
+                        0.67
+                    )
+                )
+
+            val element3 = AASeriesElement()
+                .name("Base64 symbol (*)")
+                .data(
+                    arrayOf(
+                        0.46,
+                        0.32,
+                        0.53,
+                        0.58,
+                        0.86,
+                        0.68,
+                        0.85,
+                        0.73,
+                        0.69,
+                        0.71,
+                        0.91,
+                        0.74,
+                        0.60,
+                        0.50,
+                        0.39,
+                        0.67,
+                        0.55,
+                        0.49,
+                        0.65,
+                        0.45,
+                        0.64,
+                        0.47,
+                        0.63,
+                        0.64
+                    )
+                )
+
+            val element4 = AASeriesElement()
+                .name("Custom symbol")
+                .data(
+                    arrayOf(
+                        0.60,
+                        0.51,
+                        0.52,
+                        0.53,
+                        0.64,
+                        0.84,
+                        0.65,
+                        0.68,
+                        0.63,
+                        0.47,
+                        0.72,
+                        0.60,
+                        0.65,
+                        0.74,
+                        0.66,
+                        0.65,
+                        0.71,
+                        0.59,
+                        0.65,
+                        0.77,
+                        0.52,
+                        0.53,
+                        0.58,
+                        0.53
+                    )
+                )
+
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Areaspline)
+                .title("CUSTOM LEGEND STYLE")
+                .subtitle("LEGEND ON THE TOP_RIGHT SIDE WITH VERTICAL STYLE")
+                .subtitleAlign(AAChartAlignType.Left)
+                .markerRadius(0f)
+                .backgroundColor(AAColor.whiteColor())
+                .dataLabelsEnabled(false)
+                .yAxisGridLineWidth(0f)
+                .yAxisTitle("percent values")
+                .stacking(AAChartStackingType.Normal)
+                .colorsTheme(arrayOf("mediumspringgreen", "deepskyblue", "red", "sandybrown"))
+                .series(arrayOf(element1, element2, element3, element4))
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+
+            aaOptions.legend!!
+                .enabled(true)
+                .verticalAlign(AAChartVerticalAlignType.Top)
+                .layout(AAChartLayoutType.Vertical)
+                .align(AAChartAlignType.Right)
+
+            aaOptions.yAxis?.labels?.format = "{value} %"//给y轴添加单位
+
+            aaOptions.defaultOptions = AALang()
+                .resetZoom("重置缩放比例")
+                .thousandsSep(",")
+
+            return aaOptions
+        }
+
+
+        fun configureAAPlotBandsForChart(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Spline)//图形类型
+                .dataLabelsEnabled(false)
+                .markerRadius(0f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Tokyo")
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    2.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    5.2,
+                                    26.5,
+                                    23.3,
+                                    45.3,
+                                    13.9,
+                                    9.6
+                                )
+                            )
+                            .color(AAColor.whiteColor())
+                            .lineWidth(10.0f)
+                    )
+                )
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            val aaPlotBandsElementArr = arrayOf(
+                AAPlotBandsElement()
+                    .from(0f)
+                    .to(5f)
+                    .color("#BC2B44"),
+                AAPlotBandsElement()
+                    .from(5f)
+                    .to(10f)
+                    .color("#EC6444"),
+                AAPlotBandsElement()
+                    .from(10f)
+                    .to(15f)
+                    .color("#f19742"),
+                AAPlotBandsElement()
+                    .from(15f)
+                    .to(20f)
+                    .color("#f3da60"),
+                AAPlotBandsElement()
+                    .from(20f)
+                    .to(25f)
+                    .color("#9bd040"),
+                AAPlotBandsElement()
+                    .from(25f)
+                    .to(50f)
+                    .color("#acf08f")
+            )
+
+            aaOptions.yAxis?.plotBands(aaPlotBandsElementArr)
+            return aaOptions
+        }
+
+        fun configureAAPlotLinesForChart(): AAOptions {
+            val zonesArr: Array<Any> = arrayOf(
+                mapOf(
+                    "value" to 12,
+                    "color" to "#1e90ff"
+                ),
+                mapOf(
+                    "value" to 24,
+                    "color" to "#ef476f"
+                ),
+                mapOf(
+                    "value" to 36,
+                    "color" to "#04d69f"
+                ),
+                mapOf(
+                    "color" to "#ffd066"
+                )
+            )
+
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Areaspline)//图形类型
+                .dataLabelsEnabled(false)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Tokyo")
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    2.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    5.2,
+                                    26.5,
+                                    23.3,
+                                    45.3,
+                                    13.9,
+                                    9.6
+                                )
+                            )
+                            .fillOpacity(0.5f)
+                            .lineWidth(10f)
+                            .zones(zonesArr)
+                    )
+                )
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            val aaPlotLinesElementsArr = arrayOf(
+                AAPlotLinesElement()
+                    .color("#1e90ff")//颜色值(16进制)
+                    .dashStyle(AAChartLineDashStyleType.LongDashDotDot)//样式:Dash,Dot,Solid等,默认Solid
+                    .width(1f) //标示线粗细
+                    .value(12f) //所在位置
+                    .zIndex(1) //层叠,标示线在图表中显示的层叠级别,值越大,显示越向前
+                    .label(
+                        AALabel()
+                            .text("PLOT LINES ONE")
+                            .style(
+                                AAStyle()
+                                    .color("#1e90ff")
+                                    .fontWeight(AAChartFontWeightType.Bold)
+                            )
+                    ),
+                AAPlotLinesElement()
+                    .color("#ef476f")//颜色值(16进制)
+                    .dashStyle(AAChartLineDashStyleType.LongDashDot)//样式:Dash,Dot,Solid等,默认Solid
+                    .width(1f) //标示线粗细
+                    .value(24f) //所在位置
+                    .zIndex(1) //层叠,标示线在图表中显示的层叠级别,值越大,显示越向前
+                    .label(
+                        AALabel()
+                            .text("PLOT LINES TWO")
+                            .style(
+                                AAStyle()
+                                    .color("#ef476f")
+                                    .fontWeight(AAChartFontWeightType.Bold)
+                            )
+                    ),
+                AAPlotLinesElement()
+                    .color("#1e90ff")//颜色值(16进制)
+                    .dashStyle(AAChartLineDashStyleType.LongDash)//样式:Dash,Dot,Solid等,默认Solid
+                    .width(1f) //标示线粗细
+                    .value(36f) //所在位置
+                    .zIndex(1) //层叠,标示线在图表中显示的层叠级别,值越大,显示越向前
+                    .label(
+                        AALabel()
+                            .text("PLOT LINES THREE")
+                            .style(
+                                AAStyle()
+                                    .color("#04d69f")
+                                    .fontWeight(AAChartFontWeightType.Bold)
+                            )
+                    )
+            )
+            aaOptions.yAxis?.plotLines(aaPlotLinesElementsArr)
+
+            return aaOptions
+        }
+
+        fun customAATooltipWithJSFunction(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Area)//图形类型
+                .title("近三个月金价起伏周期图")//图表主标题
+                .subtitle("金价(元/克)")//图表副标题
+                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
+                .dataLabelsEnabled(false)
+                .categories(
+                    arrayOf(
+                        "10-01",
+                        "10-02",
+                        "10-03",
+                        "10-04",
+                        "10-05",
+                        "10-06",
+                        "10-07",
+                        "10-08",
+                        "10-09",
+                        "10-10",
+                        "10-11",
+                        "10-12",
+                        "10-13",
+                        "10-14",
+                        "10-15",
+                        "10-16",
+                        "10-17",
+                        "10-18",
+                        "10-19",
+                        "10-20",
+                        "10-21",
+                        "10-22",
+                        "10-23",
+                        "10-024",
+                        "10-25",
+                        "10-26",
+                        "10-27",
+                        "10-28",
+                        "10-29",
+                        "10-30",
+                        "10-31",
+                        "11-01",
+                        "11-02",
+                        "11-03",
+                        "11-04",
+                        "11-05",
+                        "11-06",
+                        "11-07",
+                        "11-08",
+                        "11-09",
+                        "11-10",
+                        "11-11",
+                        "11-12",
+                        "11-13",
+                        "11-14",
+                        "11-15",
+                        "11-16",
+                        "11-17",
+                        "11-18",
+                        "11-19",
+                        "11-20",
+                        "11-21",
+                        "11-22",
+                        "11-23",
+                        "11-024",
+                        "11-25",
+                        "11-26",
+                        "11-27",
+                        "11-28",
+                        "11-29",
+                        "11-30",
+                        "12-01",
+                        "12-02",
+                        "12-03",
+                        "12-04",
+                        "12-05",
+                        "12-06",
+                        "12-07",
+                        "12-08",
+                        "12-09",
+                        "12-10",
+                        "12-11",
+                        "12-12",
+                        "12-13",
+                        "12-14",
+                        "12-15",
+                        "12-16",
+                        "12-17",
+                        "12-18",
+                        "12-19",
+                        "12-20",
+                        "12-21",
+                        "12-22",
+                        "12-23",
+                        "12-024",
+                        "12-25",
+                        "12-26",
+                        "12-27",
+                        "12-28",
+                        "12-29",
+                        "12-30"
+                    )
+                )
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("2020")
+                            .lineWidth(3f)
+                            .color("#FFD700"/*纯金色*/)
+                            .fillOpacity(0.5f)
+                            .data(
+                                arrayOf(
+                                    1.51,
+                                    6.7,
+                                    0.94,
+                                    1.44,
+                                    1.6,
+                                    1.63,
+                                    1.56,
+                                    1.91,
+                                    2.45,
+                                    3.87,
+                                    3.24,
+                                    4.90,
+                                    4.61,
+                                    4.10,
+                                    4.17,
+                                    3.85,
+                                    4.17,
+                                    3.46,
+                                    3.46,
+                                    3.55,
+                                    3.50,
+                                    4.13,
+                                    2.58,
+                                    2.28,
+                                    1.51,
+                                    12.7,
+                                    0.94,
+                                    1.44,
+                                    18.6,
+                                    1.63,
+                                    1.56,
+                                    1.91,
+                                    2.45,
+                                    3.87,
+                                    3.24,
+                                    4.90,
+                                    4.61,
+                                    4.10,
+                                    4.17,
+                                    3.85,
+                                    4.17,
+                                    3.46,
+                                    3.46,
+                                    3.55,
+                                    3.50,
+                                    4.13,
+                                    2.58,
+                                    2.28,
+                                    1.33,
+                                    4.68,
+                                    1.31,
+                                    1.10,
+                                    13.9,
+                                    1.10,
+                                    1.16,
+                                    1.67,
+                                    2.64,
+                                    2.86,
+                                    3.00,
+                                    3.21,
+                                    4.14,
+                                    4.07,
+                                    3.68,
+                                    3.11,
+                                    3.41,
+                                    3.25,
+                                    3.32,
+                                    3.07,
+                                    3.92,
+                                    3.05,
+                                    2.18,
+                                    3.24,
+                                    3.23,
+                                    3.15,
+                                    2.90,
+                                    1.81,
+                                    2.11,
+                                    2.43,
+                                    5.59,
+                                    3.09,
+                                    4.09,
+                                    6.14,
+                                    5.33,
+                                    6.05,
+                                    5.71,
+                                    6.22,
+                                    6.56,
+                                    4.75,
+                                    5.27,
+                                    6.02,
+                                    5.48
+                                )
+                            )
+                    )
+                )
+
+            val aaTooltip = AATooltip()
+                .useHTML(true)
+                .formatter(
+                    """
+function () {
+        return ' 🌕 🌖 🌗 🌘 🌑 🌒 🌓 🌔 <br/> '
+        + ' Support JavaScript Function Just Right Now !!! <br/> '
+        + ' The Gold Price For <b>2020 '
+        +  this.x
+        + ' </b> Is <b> '
+        +  this.y
+        + ' </b> Dollars ';
+        }
+"""
+                )
+                .valueDecimals(2)//设置取值精确到小数点后几位//设置取值精确到小数点后几位
+                .backgroundColor("#000000")
+                .borderColor("#000000")
+                .style(
+                    AAStyle()
+                        .color("#FFD700")
+                        .fontSize(12f)
+                )
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip = aaTooltip
+            return aaOptions
+        }
+
+        fun customXAxisCrosshairStyle(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Line)//图表类型
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("2020")
+                            .color(AAGradientColor.deepSeaColor())
+                            .data(
+                                arrayOf(
+                                    arrayOf(12464064, 21.5),
+                                    arrayOf(12464928, 22.1),
+                                    arrayOf(12465792, 23.2),
+                                    arrayOf(12466656, 23.8),
+                                    arrayOf(12467520, 21.4),
+                                    arrayOf(12468384, 21.3),
+                                    arrayOf(12469248, 18.3),
+                                    arrayOf(12470112, 15.4),
+                                    arrayOf(12470976, 16.4),
+                                    arrayOf(12471840, 17.7),
+                                    arrayOf(12472704, 17.5),
+                                    arrayOf(12473568, 17.6),
+                                    arrayOf(12474432, 17.7),
+                                    arrayOf(12475296, 16.8),
+                                    arrayOf(12476160, 17.7),
+                                    arrayOf(12477024, 16.3),
+                                    arrayOf(12477888, 17.8),
+                                    arrayOf(12478752, 18.1),
+                                    arrayOf(12479616, 17.2),
+                                    arrayOf(12480480, 14.4),
+                                    arrayOf(12481344, 13.7),
+                                    arrayOf(12482208, 15.7),
+                                    arrayOf(12483072, 14.6),
+                                    arrayOf(12483936, 15.3),
+                                    arrayOf(12484800, 15.3),
+                                    arrayOf(12485664, 15.8),
+                                    arrayOf(12486528, 15.2),
+                                    arrayOf(12487392, 14.8),
+                                    arrayOf(12488256, 14.4),
+                                    arrayOf(12489120, 15.5),
+                                    arrayOf(12489984, 13.6)
+                                )
+                            )
+                    )
+                )
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            val aaCrosshair = AACrosshair()
+                .color(AAColor.redColor())
+                .width(1f)
+                .dashStyle(AAChartLineDashStyleType.LongDashDotDot)
+            aaOptions.xAxis?.crosshair(aaCrosshair)
+            return aaOptions
+        }
+
+        fun configureXAxisLabelsFontColorWithHTMLString(): AAOptions {
+            val categories = arrayOf(
+                "<font color=\\\"#CC0066\\\">孤岛危机<\\/font>",
+                "<font color=\\\"#CC0033\\\">使命召唤<\\/font>",
+                "<font color=\\\"#FF0066\\\">荣誉勋章<\\/font>",
+                "<font color=\\\"##66FF99\\\">狙击精英<\\/font>",
+                "<font color=\\\"#00FF00\\\">神秘海域<\\/font>",
+                "<font color=\\\"#00CC00\\\">美国末日<\\/font>",
+                "<font color=\\\"#666FF\\\">巫师狂猎<\\/font>",
+                "<font color=\\\"#000CC\\\">死亡搁浅<\\/font>",
+                "<font color=\\\"#9933CC\\\">地狱边境<\\/font>",
+                "<font color=\\\"##FFCC99\\\">忍者之印<\\/font>",
+                "<font color=\\\"#FFCC00\\\">合金装备<\\/font>",
+                "<font color=\\\"#CC99090\\\">全战三国<\\/font>"
+            )
+
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Areaspline)
+                .title("")
+                .subtitle("")
+                .stacking(AAChartStackingType.Normal)
+                .categories(categories)
+                .dataLabelsEnabled(false)
+                .markerRadius(0f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Berlin Hot")
+                            .color(AAGradientColor.mysticMauveColor())
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    2.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    5.2,
+                                    26.5,
+                                    23.3,
+                                    45.3,
+                                    13.9,
+                                    9.6
+                                )
+                            )
+                    )
+                )
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.xAxis?.labels?.useHTML(true)
+            return aaOptions
+        }
+
+        fun configureXAxisLabelsFontColorAndFontSizeWithHTMLString(): AAOptions {
+            val categories = arrayOf(
+                "<span style=\\\"color:#CC0066;font-weight:bold;font-size:10px\\\">使命召唤</span>",
+                "<span style=\\\"color:#CC0033;font-weight:bold;font-size:11px\\\">荣誉勋章</span>",
+                "<span style=\\\"color:#FF0066;font-weight:bold;font-size:12px\\\">狙击精英</span>",
+                "<span style=\\\"color:#66FF99;font-weight:bold;font-size:13px\\\">神秘海域</span>",
+                "<span style=\\\"color:#00FF00;font-weight:bold;font-size:14px\\\">美国末日</span>",
+                "<span style=\\\"color:#00CC00;font-weight:bold;font-size:15px\\\">巫师狂猎</span>",
+                "<span style=\\\"color:#666FF;font-weight:bold;font-size:15px\\\">孤岛危机</span>",
+                "<span style=\\\"color:#000CC;font-weight:bold;font-size:14px\\\">地狱边境</span>",
+                "<span style=\\\"color:#9933CC;font-weight:bold;font-size:13px\\\">忍者之印</span>",
+                "<span style=\\\"color:#FFCC99;font-weight:bold;font-size:12px\\\">合金装备</span>",
+                "<span style=\\\"color:#FFCC00;font-weight:bold;font-size:11px\\\">全战三国</span>",
+                "<span style=\\\"color:#CC99090;font-weight:bold;font-size:10px\\\">死亡搁浅</span>"
+            )
+
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Areaspline)
+                .title("")
+                .subtitle("")
+                .stacking(AAChartStackingType.Normal)
+                .categories(categories)
+                .dataLabelsEnabled(false)
+                .markerRadius(0f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Berlin Hot")
+                            .color(AAGradientColor.deepSeaColor())
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    2.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    5.2,
+                                    26.5,
+                                    23.3,
+                                    45.3,
+                                    13.9,
+                                    9.6
+                                )
+                            )
+                    )
+                )
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.xAxis?.labels?.useHTML(true)
+
+            return aaOptions
+        }
+
+        fun configure_DataLabels_XAXis_YAxis_Legend_Style(): AAOptions {
+            val backgroundColorGradientColor = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToBottom,
+                "#4F00BC",
+                "#29ABE2"//颜色字符串设置支持十六进制类型和 rgba 类型
+            )
+
+            val fillColorGradientColor = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToBottom,
+                "rgba(256,256,256,0.3)",
+                "rgba(256,256,256,1.0)"//颜色字符串设置支持十六进制类型和 rgba 类型
+            )
+
+
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Areaspline)
+                .title("")
+                .subtitle("")
+                .backgroundColor(backgroundColorGradientColor)
+                .yAxisVisible(true)
+                .yAxisTitle("")
+                .categories(
+                    arrayOf(
+                        "一月", "二月", "三月", "四月", "五月", "六月",
+                        "七月", "八月", "九月", "十月", "十一月", "十二月"
+                    )
+                )
+                .markerRadius(0f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Berlin Hot")
+                            .color(AAColor.whiteColor())
+                            .lineWidth(7f)
+                            .fillColor(fillColorGradientColor)
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    2.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    5.2,
+                                    26.5,
+                                    23.3,
+                                    45.3,
+                                    13.9,
+                                    9.6
+                                )
+                            )
+                    )
+                )
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.plotOptions?.areaspline
+                ?.dataLabels(
+                    AADataLabels()
+                        .enabled(true)
+                        .style(
+                            AAStyle()
+                                .color(AAColor.blackColor())
+                                .fontSize(14f)
+                                .fontWeight(AAChartFontWeightType.Thin)
+                        )
+                )
+
+            val aaCrosshair = AACrosshair()
+                .dashStyle(AAChartLineDashStyleType.LongDashDot)
+                .color(AAColor.whiteColor())
+                .width(1f)
+
+            val aaLabels = AALabels()
+                .useHTML(true)
+                .style(
+                    AAStyle()
+                        .fontSize(10f)
+                        .fontWeight(AAChartFontWeightType.Bold)
+                        .color(AAColor.whiteColor())//轴文字颜色
+                )
+
+            aaOptions.yAxis!!
+                .opposite(true)
+                .tickWidth(2f)
+                .lineWidth(1.5f)//Y轴轴线颜色
+                .lineColor(AAColor.whiteColor())//Y轴轴线颜色
+                .gridLineWidth(0f)//Y轴网格线宽度
+                .crosshair(aaCrosshair)
+                .labels(aaLabels)
+
+            aaOptions.xAxis!!
+                .tickWidth(2f)//X轴刻度线宽度
+                .lineWidth(1.5f)//X轴轴线宽度
+                .lineColor(AAColor.whiteColor())//X轴轴线颜色
+                .crosshair(aaCrosshair)
+                .labels(aaLabels)
+
+
+            //设定图例项的CSS样式。只支持有关文本的CSS样式设定。
+            /*默认是:{
+         "color": "#333333",
+         "cursor": "pointer",
+         "fontSize": "12px",
+         "fontWeight": "bold"
+         }
+         */
+
+            aaOptions.legend!!
+                .itemStyle(
+                    AAItemStyle()
+                        .color(AAColor.whiteColor())//字体颜色
+                        .fontSize(13f)//字体大小
+                        .fontWeight("thin")//字体为细体字
+
+                )
+
+            return aaOptions
+        }
+
+        fun configureXAxisPlotBand(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Areaspline)
+                .title("")
+                .subtitle("")
+                .categories(
+                    arrayOf(
+                        "一月", "二月", "三月", "四月", "五月", "六月",
+                        "七月", "八月", "九月", "十月", "十一月", "十二月"
+                    )
+                )
+                .yAxisTitle("")
+                .yAxisGridLineWidth(0f)
+                .markerRadius(8f)
+                .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("New York Hot")
+                            .lineWidth(5.0f)
+                            .color("rgba(220,20,60,1)")////猩红色, alpha 透明度 1
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    2.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    5.2,
+                                    26.5,
+                                    23.3,
+                                    45.3,
+                                    13.9,
+                                    9.6
+                                )
+                            ),
+                        AASeriesElement()
+                            .type(AAChartType.Column)
+                            .name("Berlin Hot")
+                            .color("#25547c")
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    2.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    5.2,
+                                    26.5,
+                                    23.3,
+                                    45.3,
+                                    13.9,
+                                    9.6
+                                )
+                            )
+                    )
+                )
+
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            val aaPlotBandsElementArr = arrayOf(
+                AAPlotBandsElement()
+                    .from(-0.25f)//值域颜色带X轴起始值
+                    .to(4.75f)//值域颜色带X轴结束值
+                    .color("#06caf4")//值域颜色带填充色
+                ,
+                AAPlotBandsElement()
+                    .from(4.75f)
+                    .to(8.25f)
+                    .color("#ffd066"),
+                AAPlotBandsElement()
+                    .from(8.25f)
+                    .to(11.25f)
+                    .color("#04d69f")
+            )
+
+            val aaXAxis = aaOptions.xAxis
+            aaXAxis?.plotBands(aaPlotBandsElementArr)
+
+            return aaOptions
+        }
+
+        fun configureTheMirrorColumnChart(): AAOptions {
+            val gradientColorDic1 = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToTop,
+                "#7052f4",
+                "#00b0ff"//颜色字符串设置支持十六进制类型和 rgba 类型
+            )
+
+            val gradientColorDic2 = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToTop,
+                "#EF71FF",
+                "#4740C8"//颜色字符串设置支持十六进制类型和 rgba 类型
+            )
+
+            val aaYAxis1 = AAYAxis()
+                .visible(true)
+                .labels(
+                    AALabels()
+                        .enabled(true)//设置 y 轴是否显示数字
+                        .style(
+                            AAStyle()
+                                .color("#ff0000")//yAxis Label font color
+                                .fontSize(15f)//yAxis Label font size
+                                .fontWeight(AAChartFontWeightType.Bold)//yAxis Label font weight
+                        )
+                )
+                .gridLineWidth(0f)// Y 轴网格线宽度
+                .title(
+                    AATitle()
+                        .text("收入")
+                )//Y 轴标题
+
+            val aaYAxis2 = AAYAxis()
+                .visible(true)
+                .opposite(true)
+                .title(
+                    AATitle()
+                        .text("支出")
+                )
+
+            return AAOptions()
+                .chart(
+                    AAChart()
+                        .type(AAChartType.Column)
+                )
+                .title(
+                    AATitle()
+                        .text("正负镜像柱形图")
+                        .style(
+                            AAStyle()
+                                .color(AAColor.whiteColor())
+                                .fontSize(18f)
+                        )
+                )
+                .xAxis(
+                    AAXAxis()
+                        .categories(
+                            arrayOf(
+                                "一月", "二月", "三月", "四月", "五月", "六月",
+                                "七月", "八月", "九月", "十月", "十一月", "十二月"
+                            )
+                        )
+                )
+                .yAxisArray(arrayOf(aaYAxis1, aaYAxis2))
+                .plotOptions(
+                    AAPlotOptions()
+                        .series(
+                            AASeries()
+                                .animation(
+                                    AAAnimation()
+                                        .duration(800)
+                                        .easing(AAChartAnimationType.EaseInCirc)
+                                )
+                        )
+                        .column(
+                            AAColumn()
+                                .grouping(false)
+                                .borderWidth(0f)
+                                .borderRadius(5f)
+                        )
+                )
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("收入")
+                            .color(gradientColorDic1)
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    9.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    25.2,
+                                    26.5,
+                                    23.3,
+                                    18.3,
+                                    13.9,
+                                    7.0,
+                                    6.9,
+                                    9.5,
+                                    14.5
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("支出")
+                            .color(gradientColorDic2)
+                            .data(
+                                arrayOf(
+                                    -20.1,
+                                    -14.1,
+                                    -8.6,
+                                    -2.5,
+                                    -0.8,
+                                    -5.7,
+                                    -11.3,
+                                    -17.0,
+                                    -22.0,
+                                    -24.8,
+                                    -24.1,
+                                    -20.1,
+                                    -14.1,
+                                    -8.6,
+                                    -2.5
+                                )
+                            )
+                    )
+                )
+
+        }
+
+        fun configureDoubleYAxisChartOptions(): AAOptions {
+            val aaTitle = AATitle()
+                .text("")
+
+            val aaXAxis = AAXAxis()
+                .visible(true)
+                .min(0f)
+                .categories(
+                    arrayOf(
+                        "Java", "Swift", "Python", "Ruby", "PHP", "Go", "C",
+                        "C#", "C++", "Perl", "R", "MATLAB", "SQL"
+                    )
+                )
+
+            val aaYAxisTitleStyle = AAStyle()
+                .color("#1e90ff")//Title font color
+                .fontSize(14f)//Title font size
+                .fontWeight(AAChartFontWeightType.Bold)//Title font weight
+                .textOutline("0px 0px contrast")
+
+            val aaYAxisLabels = AALabels()
+                .enabled(true)//设置 y 轴是否显示数字
+                .style(
+                    AAStyle()
+                        .color("#ff0000")//yAxis Label font color
+                        .fontSize(15f)//yAxis Label font size
+                        .fontWeight(AAChartFontWeightType.Bold)//yAxis Label font weight
+                )
+
+            val yAxisOne = AAYAxis()
+                .visible(true)
+                .labels(aaYAxisLabels)
+                .title(
+                    AATitle()
+                        .text("冬季降雨量")
+                        .style(aaYAxisTitleStyle)
+                )
+                .opposite(true)
+
+
+            val yAxisTwo = AAYAxis()
+                .visible(true)
+                .labels(aaYAxisLabels)
+                .title(
+                    AATitle()
+                        .text("夏季降雨量")
+                        .style(aaYAxisTitleStyle)
+                )
+
+            val aaTooltip = AATooltip()
+                .enabled(true)
+                .shared(true)
+
+            val gradientColorDic1 = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToTop,
+                "#f54ea2",
+                "#ff7676"//颜色字符串设置支持十六进制类型和 rgba 类型
+            )
+
+            val gradientColorDic2 = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToTop,
+                "#17ead9",
+                "#6078ea"//颜色字符串设置支持十六进制类型和 rgba 类型
+            )
+
+            val aaMarker = AAMarker()
+                .radius(7f)//曲线连接点半径,默认是4
+                .symbol(AAChartSymbolType.Circle.value)//曲线点类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
+                .fillColor("#ffffff")//点的填充色(用来设置折线连接点的填充色)
+                .lineWidth(3f)//外沿线的宽度(用来设置折线连接点的轮廓描边的宽度)
+                .lineColor("")//外沿线的颜色(用来设置折线连接点的轮廓描边颜色,当值为空字符串时,默认取数据点或数据列的颜色)
+
+            val element1 = AASeriesElement()
+                .name("2017")
+                .type(AAChartType.Areaspline)
+                //          .borderRadius(4)
+                .color(gradientColorDic1)
+                .marker(aaMarker)
+                .yAxis(1)
+                .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
+
+            val element2 = AASeriesElement()
+                .name("2018")
+                .type(AAChartType.Column)
+                .color(gradientColorDic2)
+                .yAxis(0)
+                .data(arrayOf(7.0, 6.9, 2.5, 14.5, 18.2, 21.5, 5.2, 26.5, 23.3, 45.3, 13.9, 9.6))
+
+
+            return AAOptions()
+                .title(aaTitle)
+                .xAxis(aaXAxis)
+                .yAxisArray(arrayOf(yAxisOne, yAxisTwo))
+                .tooltip(aaTooltip)
+                .series(arrayOf(element1, element2))
+        }
+
+        fun configureTripleYAxesMixedChart(): AAOptions {
+            val colorsThemeArr = arrayOf("red", "mediumspringgreen", "deepskyblue")
+
+            val aaTitle = AATitle()
+                .text("东京月平均天气数据")
+
+            val aaSubtitle = AASubtitle()
+                .text("数据来源: WorldClimate.com")
+
+            val aaXAxis = AAXAxis()
+                .visible(true)
+                .min(0f)
+                .categories(
+                    arrayOf(
+                        "一月", "二月", "三月", "四月", "五月", "六月",
+                        "七月", "八月", "九月", "十月", "十一月", "十二月"
+                    )
+                )
+
+            val yAxis1 = AAYAxis()
+                .visible(true)
+                .gridLineWidth(0f)
+                .labels(
+                    AALabels()
+                        .enabled(true)//设置 y 轴是否显示数字
+                        .format("{value}°C")
+                        .style(
+                            AAStyle()
+                                .color(colorsThemeArr[2])
+                        )
+                )//yAxis Label font color
+                .title(
+                    AATitle()
+                        .text("温度")
+                        .style(
+                            AAStyle()
+                                .color(colorsThemeArr[2])
+                        )
+                )
+                .opposite(true)
+
+            val yAxis2 = AAYAxis()
+                .visible(true)
+                .gridLineWidth(0f)
+                .labels(
+                    AALabels()
+                        .enabled(true)//设置 y 轴是否显示数字
+                        .format("{value}°mm")
+                        .style(
+                            AAStyle()
+                                .color(colorsThemeArr[0])
+                        )
+                )//yAxis Label font color
+                .title(
+                    AATitle()
+                        .text("降雨量")
+                        .style(
+                            AAStyle()
+                                .color(colorsThemeArr[0])
+                        )
+                )
+
+            val yAxis3 = AAYAxis()
+                .visible(true)
+                .gridLineWidth(0f)
+                .labels(
+                    AALabels()
+                        .enabled(true)//设置 y 轴是否显示数字
+                        .format("{value}°mb")
+                        .style(
+                            AAStyle()
+                                .color(colorsThemeArr[1])
+                        )
+                )//yAxis Label font color
+                .title(
+                    AATitle()
+                        .text("海平面气压")
+                        .style(
+                            AAStyle()
+                                .color(colorsThemeArr[1])
+                        )
+                )
+                .opposite(true)
+
+
+            val aaTooltip = AATooltip()
+                .enabled(true)
+                .shared(true)
+
+            val aaLegend = AALegend()
+                .enabled(true)
+                .floating(true)
+                .layout(AAChartLayoutType.Vertical)
+                .align(AAChartAlignType.Left)
+                .x(80f)
+                .verticalAlign(AAChartVerticalAlignType.Top)
+                .y(55f)
+
+            val element1 = AASeriesElement()
+                .name("降雨量")
+                .type(AAChartType.Column)
+                .yAxis(1)
+                .data(
+                    arrayOf(
+                        49.9,
+                        71.5,
+                        106.4,
+                        129.2,
+                        144.0,
+                        176.0,
+                        135.6,
+                        148.5,
+                        216.4,
+                        194.1,
+                        95.6,
+                        54.4
+                    )
+                )
+                .tooltip(
+                    AATooltip()
+                        .valueSuffix(" mm")
+                )
+
+            val element2 = AASeriesElement()
+                .name("海平面气压")
+                .type(AAChartType.Line)
+                .yAxis(2)
+                .data(
+                    arrayOf(
+                        1016,
+                        1016,
+                        1015.9,
+                        1015.5,
+                        1012.3,
+                        1009.5,
+                        1009.6,
+                        1010.2,
+                        1013.1,
+                        1016.9,
+                        1018.2,
+                        1016.7
+                    )
+                )
+                .dashStyle(AAChartLineDashStyleType.ShortDot)
+                .tooltip(
+                    AATooltip()
+                        .valueSuffix(" mb")
+                )
+
+            val element3 = AASeriesElement()
+                .name("温度")
+                .type(AAChartType.Line)
+                .yAxis(0)
+                .data(arrayOf(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6))
+                .tooltip(
+                    AATooltip()
+                        .valueSuffix(" ℃")
+                )
+
+            return AAOptions()
+                .title(aaTitle)
+                .subtitle(aaSubtitle)
+                .colors(colorsThemeArr as Array<Any>)
+                .xAxis(aaXAxis)
+                .yAxisArray(arrayOf(yAxis1, yAxis2, yAxis3))
+                .tooltip(aaTooltip)
+                .legend(aaLegend)
+                .series(arrayOf(element1, element2, element3))
+        }
+
+        fun customLineChartDataLabelsFormat(): AAOptions {
+            val aaChartModel = AAChartModel()
+                //选择图表类型
+                .chartType(AAChartType.Line)
+                .colorsTheme(arrayOf("#465DBC"))
+                //title标题
+                .title("最近三十分钟数据展示")
+                .titleStyle(
+                    AAStyle()
+                        .color("#0F0F0F")
+                        .fontSize(20f)
+                )
+                //坐标轴字体颜色
+                .axesTextColor("#0F0F0F")
+                //背景颜色
+                .zoomType(AAChartZoomType.XY)
+                .backgroundColor("#FFFFFF")
+                //数据是否显示
+                .dataLabelsEnabled(true)
+                //x轴是否显示数据
+                .xAxisLabelsEnabled(true)
+                //x轴显示的数据间隔
+                .xAxisTickInterval(5)
+                //y轴是否显示数据
+                .yAxisLabelsEnabled(true)
+                //y轴标题
+                .yAxisTitle("湿度%")
+                //y轴最大值
+                .yAxisMax(100.0f)
+                //y轴最小值
+                .yAxisMin(0.0f)
+                .yAxisAllowDecimals(true) //y轴数据
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("湿度")
+                            .data(
+                                arrayOf(44.0999, 44.8880, 44.7770, 43.0066, 43.6660, 43.5550)
+                            )
+                    )
+                )
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.plotOptions?.line?.dataLabels?.format = "{point.y:.4f} ℃" //保留 Y 轴值的小数点后 4 位
+            return aaOptions
+        }
+
+        fun configureDoubleYAxesAndColumnLineMixedChart(): AAOptions {
+            val stopsArr: Array<Any> = arrayOf(
+                arrayOf(0.0, "rgba(156,107,211,0.5)"),
+                arrayOf(0.2, "rgba(156,107,211,0.3)"),
+                arrayOf(1.0, "rgba(156,107,211,0)")
+            )
+            val gradientColorDic1: Map<String, *> = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToBottom,
+                stopsArr
+            )
+            val gradientColorDic2: Map<String, *> = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToBottom,
+                "#956FD4",
+                "#3EACE5" //颜色字符串设置支持十六进制类型和 rgba 类型
+            )
+            val category = arrayOf(
+                "市区", "万州", "江北", "南岸", "北碚", "綦南", "长寿", "永川", "璧山", "江津",
+                "城口", "大足", "垫江", "丰都", "奉节", "合川", "江津区", "开州", "南川", "彭水",
+                "黔江", "石柱", "铜梁", "潼南", "巫山", "巫溪", "武隆", "秀山", "酉阳", "云阳",
+                "忠县", "川东", "检修"
+            )
+            val goalValuesArr = arrayOf(
+                18092,
+                20728,
+                24045,
+                28348,
+                32808,
+                36097,
+                39867,
+                44715,
+                48444,
+                50415,
+                56061,
+                62677,
+                59521,
+                67560,
+                18092,
+                20728,
+                24045,
+                28348,
+                32808,
+                36097,
+                39867,
+                44715,
+                48444,
+                50415,
+                36097,
+                39867,
+                44715,
+                48444,
+                50415,
+                50061,
+                32677,
+                49521,
+                32808
+            )
+            val realValuesArr = arrayOf(
+                4600,
+                5000,
+                5500,
+                6500,
+                7500,
+                8500,
+                9900,
+                12500,
+                14000,
+                21500,
+                23200,
+                24450,
+                25250,
+                33300,
+                4600,
+                5000,
+                5500,
+                6500,
+                7500,
+                8500,
+                9900,
+                22500,
+                14000,
+                21500,
+                8500,
+                9900,
+                12500,
+                14000,
+                21500,
+                23200,
+                24450,
+                25250,
+                7500
+            )
+            val rateValuesArr = arrayOfNulls<Any>(33)
+            for (i in 0..32) {
+                val goalValue: Float = goalValuesArr[i].toFloat()
+                val realValue: Float = realValuesArr[i].toFloat()
+                val rateValue = realValue / goalValue
+                rateValuesArr[i] = rateValue
+            }
+            val aaChart = AAChart()
+                .backgroundColor("#191E40")
+            val aaTitle = AATitle()
+                .text("")
+            val aaLabels = AALabels()
+                .enabled(true)
+                .style(
+                    AAStyle()
+                        .color(AAColor.lightGrayColor())
+                )
+            val aaXAxis = AAXAxis()
+                .visible(true)
+                .labels(aaLabels)
+                .min(0f)
+                .categories(category)
+            val aaYAxisTitleStyle = AAStyle()
+                .color("#1e90ff") //Title font color
+                .fontSize(14f) //Title font size
+                .fontWeight(AAChartFontWeightType.Bold) //Title font weight
+                .textOutline("0px 0px contrast")
+            val yAxis1 = AAYAxis()
+                .visible(true)
+                .labels(aaLabels)
+                .gridLineWidth(0f)
+                .title(
+                    AATitle()
+                        .text("已贯通 / 计划贯通")
+                        .style(aaYAxisTitleStyle)
+                )
+            val yAxis2 = AAYAxis()
+                .visible(true)
+                .labels(aaLabels)
+                .gridLineWidth(0f)
+                .title(
+                    AATitle()
+                        .text("贯通率")
+                        .style(aaYAxisTitleStyle)
+                )
+                .opposite(true)
+            val aaTooltip = AATooltip()
+                .enabled(true)
+                .shared(true)
+            val aaPlotOptions = AAPlotOptions()
+                .series(
+                    AASeries()
+                        .animation(
+                            AAAnimation()
+                                .easing(AAChartAnimationType.EaseTo)
+                                .duration(1000)
+                        )
+                )
+                .column(
+                    AAColumn()
+                        .grouping(false)
+                        .pointPadding(0f)
+                        .pointPlacement(0f)
+                )
+            val aaLegend = AALegend()
+                .enabled(true)
+                .itemStyle(
+                    AAItemStyle()
+                        .color(AAColor.lightGrayColor())
+                )
+                .floating(true)
+                .layout(AAChartLayoutType.Horizontal)
+                .align(AAChartAlignType.Left)
+                .x(30f)
+                .verticalAlign(AAChartVerticalAlignType.Top)
+                .y(10f)
+            val goalValuesElement: AASeriesElement = AASeriesElement()
+                .name("计划贯通")
+                .type(AAChartType.Column)
+                .borderWidth(0f)
+                .color(gradientColorDic1)
+                .yAxis(0)
+                .data(goalValuesArr as Array<Any>)
+            val realValuesElement: AASeriesElement = AASeriesElement()
+                .name("已贯通")
+                .type(AAChartType.Column)
+                .borderWidth(0f)
+                .color(gradientColorDic2)
+                .yAxis(0)
+                .data(realValuesArr as Array<Any>)
+            val rateValuesElement = AASeriesElement()
+                .name("贯通率")
+                .type(AAChartType.Line)
+                .marker(
+                    AAMarker()
+                        .radius(7f) //曲线连接点半径,默认是4
+                        .symbol(AAChartSymbolType.Circle.value) //曲线点类型:"circle", "square", "diamond", "triangle","triangle-down",默认是"circle"
+                        .fillColor("#ffffff") //点的填充色(用来设置折线连接点的填充色)
+                        .lineWidth(3f) //外沿线的宽度(用来设置折线连接点的轮廓描边的宽度)
+                        .lineColor("") //外沿线的颜色(用来设置折线连接点的轮廓描边颜色,当值为空字符串时,默认取数据点或数据列的颜色)
+                )
+                .color("#F02FC2")
+                .yAxis(1)
+                .data(rateValuesArr as Array<Any>)
+            return AAOptions()
+                .chart(aaChart)
+                .title(aaTitle)
+                .xAxis(aaXAxis)
+                .yAxisArray(arrayOf(yAxis1, yAxis2))
+                .tooltip(aaTooltip)
+                .plotOptions(aaPlotOptions)
+                .legend(aaLegend)
+                .series(
+                    arrayOf(
+                        goalValuesElement,
+                        realValuesElement,
+                        rateValuesElement
+                    )
+                )
+        }
+
+        fun configureDoubleYAxesMarketDepthChart(): AAOptions {
+            val aaChart = AAChart()
+                .type(AAChartType.Area)
+            val aaTitle = AATitle()
+                .text("ETH-BTC 市场深度图")
+            val aaSubtitle = AASubtitle()
+                .text("数据来源: https://github.com/AAChartModel")
+            val aaXAxis = AAXAxis()
+                .visible(true)
+                .plotLines(
+                    arrayOf(
+                        AAPlotLinesElement()
+                            .color(AAColor.redColor())
+                            .value(0.1523f)
+                            .width(1.5f)
+                            .label(
+                                AALabel()
+                                    .text("实际价格")
+                                    .style(AAChartLineDashStyleType.ShortDashDotDot) //.rotation(90)
+                            )
+                    )
+                )
+            val yAxis1 = AAYAxis()
+                .visible(true)
+                .lineWidth(1f)
+                .title(
+                    AATitle()
+                        .text("")
+                )
+                .tickWidth(1f)
+                .tickLength(5f)
+                .tickPosition("inside")
+                .gridLineWidth(1f)
+                .labels(
+                    AALabels()
+                        .enabled(true) //设置 y 轴是否显示数字
+                        .align(AAChartAlignType.Left)
+                        .x(8f)
+                )
+            val yAxis2 = AAYAxis()
+                .opposite(true)
+                .visible(true)
+                .lineWidth(1f)
+                .title(
+                    AATitle()
+                        .text("")
+                )
+                .tickWidth(1f)
+                .tickLength(5f)
+                .tickPosition("inside")
+                .gridLineWidth(0f)
+                .labels(
+                    AALabels()
+                        .enabled(true) //设置 y 轴是否显示数字
+                        .align(AAChartAlignType.Right)
+                        .x(-8f)
+                )
+            val aaTooltip = AATooltip()
+                .enabled(true)
+                .headerFormat("<span style=\\\"font-size=10px;\\\">Price: {point.key}</span><br/>")
+                .valueDecimals(2)
+            val aaLegend = AALegend()
+                .enabled(false)
+            val element1 = AASeriesElement()
+                .name("Bids")
+                .color("#04d69f")
+                .step(true)
+                .data(
+                    arrayOf(
+                        arrayOf(0.1524, 0.948665),
+                        arrayOf(0.1539, 35.510715),
+                        arrayOf(0.154, 39.883437),
+                        arrayOf(0.1541, 40.499661),
+                        arrayOf(0.1545, 43.262994000000006),
+                        arrayOf(0.1547, 60.14799400000001),
+                        arrayOf(0.1553, 60.30799400000001),
+                        arrayOf(0.1558, 60.55018100000001),
+                        arrayOf(0.1564, 68.381696),
+                        arrayOf(0.1567, 69.46518400000001),
+                        arrayOf(0.1569, 69.621464),
+                        arrayOf(0.157, 70.398015),
+                        arrayOf(0.1574, 70.400197),
+                        arrayOf(0.1575, 73.199217),
+                        arrayOf(0.158, 77.700017),
+                        arrayOf(0.1583, 79.449017),
+                        arrayOf(0.1588, 79.584064),
+                        arrayOf(0.159, 80.584064),
+                        arrayOf(0.16, 81.58156),
+                        arrayOf(0.1608, 83.38156)
+                    )
+                )
+            val element2 = AASeriesElement()
+                .name("Asks")
+                .color("#1e90ff")
+                .step(true)
+                .data(
+                    arrayOf(
+                        arrayOf(0.1435, 242.521842),
+                        arrayOf(0.1436, 206.49862099999999),
+                        arrayOf(0.1437, 205.823735),
+                        arrayOf(0.1438, 197.33275),
+                        arrayOf(0.1439, 153.677454),
+                        arrayOf(0.144, 146.007722),
+                        arrayOf(0.1442, 82.55212900000001),
+                        arrayOf(0.1443, 59.152814000000006),
+                        arrayOf(0.1444, 57.942260000000005),
+                        arrayOf(0.1445, 57.483850000000004),
+                        arrayOf(0.1446, 52.39210800000001),
+                        arrayOf(0.1447, 51.867208000000005),
+                        arrayOf(0.1448, 44.104697),
+                        arrayOf(0.1449, 40.131217),
+                        arrayOf(0.145, 31.878217),
+                        arrayOf(0.1451, 22.794916999999998),
+                        arrayOf(0.1453, 12.345828999999998),
+                        arrayOf(0.1454, 10.035642),
+                        arrayOf(0.148, 9.326642),
+                        arrayOf(0.1522, 3.76317)
+                    )
+                )
+            return AAOptions()
+                .chart(aaChart)
+                .title(aaTitle)
+                .subtitle(aaSubtitle)
+                .xAxis(aaXAxis)
+                .yAxisArray(arrayOf(yAxis1, yAxis2))
+                .tooltip(aaTooltip)
+                .legend(aaLegend)
+                .series(arrayOf(element1, element2))
+        }
+
+        fun customAreaChartTooltipStyleLikeHTMLTable(): AAOptions {
+            val element1 = AASeriesElement()
+                .name("Predefined symbol")
+                .data(
+                    arrayOf(
+                        0.45,
+                        0.43,
+                        0.50,
+                        0.55,
+                        0.58,
+                        0.62,
+                        0.83,
+                        0.39,
+                        0.56,
+                        0.67,
+                        0.50,
+                        0.34,
+                        0.50,
+                        0.67,
+                        0.58,
+                        0.29,
+                        0.46,
+                        0.23,
+                        0.47,
+                        0.46,
+                        0.38,
+                        0.56,
+                        0.48,
+                        0.36
+                    )
+                )
+
+            val element2 = AASeriesElement()
+                .name("Image symbol")
+                .data(
+                    arrayOf(
+                        0.38,
+                        0.31,
+                        0.32,
+                        0.32,
+                        0.64,
+                        0.66,
+                        0.86,
+                        0.47,
+                        0.52,
+                        0.75,
+                        0.52,
+                        0.56,
+                        0.54,
+                        0.60,
+                        0.46,
+                        0.63,
+                        0.54,
+                        0.51,
+                        0.58,
+                        0.64,
+                        0.60,
+                        0.45,
+                        0.36,
+                        0.67
+                    )
+                )
+
+            val element3 = AASeriesElement()
+                .name("Base64 symbol (*)")
+                .data(
+                    arrayOf(
+                        0.46,
+                        0.32,
+                        0.53,
+                        0.58,
+                        0.86,
+                        0.68,
+                        0.85,
+                        0.73,
+                        0.69,
+                        0.71,
+                        0.91,
+                        0.74,
+                        0.60,
+                        0.50,
+                        0.39,
+                        0.67,
+                        0.55,
+                        0.49,
+                        0.65,
+                        0.45,
+                        0.64,
+                        0.47,
+                        0.63,
+                        0.64
+                    )
+                )
+
+            val element4 = AASeriesElement()
+                .name("Custom symbol")
+                .data(
+                    arrayOf(
+                        0.60,
+                        0.51,
+                        0.52,
+                        0.53,
+                        0.64,
+                        0.84,
+                        0.65,
+                        0.68,
+                        0.63,
+                        0.47,
+                        0.72,
+                        0.60,
+                        0.65,
+                        0.74,
+                        0.66,
+                        0.65,
+                        0.71,
+                        0.59,
+                        0.65,
+                        0.77,
+                        0.52,
+                        0.53,
+                        0.58,
+                        0.53
+                    )
+                )
+
+
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Areaspline) //图表类型
+                .title("") //图表主标题
+                .subtitle("") //图表副标题
+                .colorsTheme(arrayOf("#04d69f", "#1e90ff", "#ef476f", "#ffd066"))
+                .stacking(AAChartStackingType.Normal)
+                .yAxisTitle("") //设置 Y 轴标题
+                .yAxisVisible(false)
+                .markerRadius(0f)
+                .series(arrayOf(element1, element2, element3, element4))
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip!!
+                .shared(true)
+                .useHTML(true)
+                .headerFormat("<small>{point.key} 摄氏度</small><table>")
+                .pointFormat(
+                    "<tr><td style=\\\"color: {series.color}\\\">{series.name}: </td>"
+                            + "<td style=\\\"text-align: right\\\"><b>{point.y}EUR</b></td></tr>"
+                )
+                .footerFormat("</table>")
+                .valueDecimals(2)
+            return aaOptions
+        }
+
+        fun simpleGaugeChart(): AAOptions {
+            return AAOptions()
+                .chart(
+                    AAChart()
+                        .type(AAChartType.Gauge)
+                )
+                .pane(
+                    AAPane()
+                        .startAngle(-150f)
+                        .endAngle(150f)
+                )
+                .yAxis(
+                    AAYAxis()
+                        .min(0f)
+                        .max(100f)
+                        .plotBands(
+                            arrayOf(
+                                AAPlotBandsElement()
+                                    .from(0f)
+                                    .to(60f)
+                                    .color("#FF0000")
+                            )
+                        )
+                )
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .data(arrayOf(80))
+                    )
+                )
+        }
+
+        fun gaugeChartWithPlotBand(): AAOptions {
+            return AAOptions()
+                .chart(
+                    AAChart()
+                        .type(AAChartType.Gauge)
+                )
+                .title(
+                    AATitle()
+                        .text("速度仪")
+                )
+                .pane(
+                    AAPane()
+                        .startAngle(-150f)
+                        .endAngle(150f)
+                )
+                .yAxis(
+                    AAYAxis()
+                        .min(0f)
+                        .max(200f)
+                        .title(
+                            AATitle()
+                                .text("km/h")
+                        )
+                        .plotBands(
+                            arrayOf(
+                                AAPlotBandsElement()
+                                    .from(0f)
+                                    .to(120f)
+                                    .color("#ffc069"),
+                                AAPlotBandsElement()
+                                    .from(120f)
+                                    .to(160f)
+                                    .color("#fe117c"),
+                                AAPlotBandsElement()
+                                    .from(160f)
+                                    .to(200f)
+                                    .color("#06caf4")
+                            )
+                        )
+                )
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .data(arrayOf(80))
+                    )
+                )
+        }
+
+    }
+}

File diff suppressed because it is too large
+ 747 - 0
sample/src/main/java/com/github/aachartmodel/aainfographics/demo/chartcomposer/CustomStyleChartComposer.kt


+ 1315 - 0
sample/src/main/java/com/github/aachartmodel/aainfographics/demo/chartcomposer/CustomTooltipComposer.kt

@@ -0,0 +1,1315 @@
+/**
+ * Copyright (C), 2015-2019,
+ * FileName: CustomTooltipComposer
+ * Author: ios-fn
+ * Date: 2019-06-22 19:41
+ * Description:
+ * History:
+ */
+/**
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ */
+
+/**
+
+ * -------------------------------------------------------------------------------
+ *
+ *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
+ *
+ * Please contact me on GitHub,if there are any problems encountered in use.
+ * GitHub Issues : https://github.com/AAChartModel/AAChartCore-Kotlin/issues
+ * -------------------------------------------------------------------------------
+ * And if you want to contribute for this project, please contact me as well
+ * GitHub        : https://github.com/AAChartModel
+ * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
+ * JianShu       : http://www.jianshu.com/u/f1e6753d4254
+ * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
+ *
+ * -------------------------------------------------------------------------------
+
+ */
+package com.github.aachartmodel.aainfographics.demo.chartcomposer
+
+import com.github.aachartmodel.aainfographics.aachartcreator.*
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.*
+import com.github.aachartmodel.aainfographics.aatools.AAColor
+import com.github.aachartmodel.aainfographics.aatools.AAGradientColor
+import com.github.aachartmodel.aainfographics.aatools.AALinearGradientDirection
+
+class CustomTooltipComposer {
+    companion object {
+        fun customAreaChartTooltipStyleWithFormatterFunction1(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Area)//图形类型
+                .title("近三个月金价起伏周期图")//图表主标题
+                .subtitle("金价(元/克)")//图表副标题
+                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
+                .dataLabelsEnabled(false)
+                .categories(
+                    arrayOf(
+                        "10-01",
+                        "10-02",
+                        "10-03",
+                        "10-04",
+                        "10-05",
+                        "10-06",
+                        "10-07",
+                        "10-08",
+                        "10-09",
+                        "10-10",
+                        "10-11",
+                        "10-12",
+                        "10-13",
+                        "10-14",
+                        "10-15",
+                        "10-16",
+                        "10-17",
+                        "10-18",
+                        "10-19",
+                        "10-20",
+                        "10-21",
+                        "10-22",
+                        "10-23",
+                        "10-024",
+                        "10-25",
+                        "10-26",
+                        "10-27",
+                        "10-28",
+                        "10-29",
+                        "10-30",
+                        "10-31",
+                        "11-01",
+                        "11-02",
+                        "11-03",
+                        "11-04",
+                        "11-05",
+                        "11-06",
+                        "11-07",
+                        "11-08",
+                        "11-09",
+                        "11-10",
+                        "11-11",
+                        "11-12",
+                        "11-13",
+                        "11-14",
+                        "11-15",
+                        "11-16",
+                        "11-17",
+                        "11-18",
+                        "11-19",
+                        "11-20",
+                        "11-21",
+                        "11-22",
+                        "11-23",
+                        "11-024",
+                        "11-25",
+                        "11-26",
+                        "11-27",
+                        "11-28",
+                        "11-29",
+                        "11-30",
+                        "12-01",
+                        "12-02",
+                        "12-03",
+                        "12-04",
+                        "12-05",
+                        "12-06",
+                        "12-07",
+                        "12-08",
+                        "12-09",
+                        "12-10",
+                        "12-11",
+                        "12-12",
+                        "12-13",
+                        "12-14",
+                        "12-15",
+                        "12-16",
+                        "12-17",
+                        "12-18",
+                        "12-19",
+                        "12-20",
+                        "12-21",
+                        "12-22",
+                        "12-23",
+                        "12-024",
+                        "12-25",
+                        "12-26",
+                        "12-27",
+                        "12-28",
+                        "12-29",
+                        "12-30"
+                    )
+                )
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("2020")
+                            .lineWidth(3f)
+                            .color("#FFD700"/*纯金色*/)
+                            .fillOpacity(0.5f)
+                            .data(
+                                arrayOf(
+                                    1.51,
+                                    6.7,
+                                    0.94,
+                                    1.44,
+                                    1.6,
+                                    1.63,
+                                    1.56,
+                                    1.91,
+                                    2.45,
+                                    3.87,
+                                    3.24,
+                                    4.90,
+                                    4.61,
+                                    4.10,
+                                    4.17,
+                                    3.85,
+                                    4.17,
+                                    3.46,
+                                    3.46,
+                                    3.55,
+                                    3.50,
+                                    4.13,
+                                    2.58,
+                                    2.28,
+                                    1.51,
+                                    12.7,
+                                    0.94,
+                                    1.44,
+                                    18.6,
+                                    1.63,
+                                    1.56,
+                                    1.91,
+                                    2.45,
+                                    3.87,
+                                    3.24,
+                                    4.90,
+                                    4.61,
+                                    4.10,
+                                    4.17,
+                                    3.85,
+                                    4.17,
+                                    3.46,
+                                    3.46,
+                                    3.55,
+                                    3.50,
+                                    4.13,
+                                    2.58,
+                                    2.28,
+                                    1.33,
+                                    4.68,
+                                    1.31,
+                                    1.10,
+                                    13.9,
+                                    1.10,
+                                    1.16,
+                                    1.67,
+                                    2.64,
+                                    2.86,
+                                    3.00,
+                                    3.21,
+                                    4.14,
+                                    4.07,
+                                    3.68,
+                                    3.11,
+                                    3.41,
+                                    3.25,
+                                    3.32,
+                                    3.07,
+                                    3.92,
+                                    3.05,
+                                    2.18,
+                                    3.24,
+                                    3.23,
+                                    3.15,
+                                    2.90,
+                                    1.81,
+                                    2.11,
+                                    2.43,
+                                    5.59,
+                                    3.09,
+                                    4.09,
+                                    6.14,
+                                    5.33,
+                                    6.05,
+                                    5.71,
+                                    6.22,
+                                    6.56,
+                                    4.75,
+                                    5.27,
+                                    6.02,
+                                    5.48
+                                )
+                            )
+                    )
+                )
+
+            val aaTooltip = AATooltip()
+                .useHTML(true)
+                .formatter(
+                    """
+function () {
+        return ' 🌕 🌖 🌗 🌘 🌑 🌒 🌓 🌔 <br/> '
+        + ' Support JavaScript Function Just Right Now !!! <br/> '
+        + ' The Gold Price For <b>2020 '
+        +  this.x
+        + ' </b> Is <b> '
+        +  this.y
+        + ' </b> Dollars ';
+        }
+             """.trimIndent()
+                )
+                .valueDecimals(2)//设置取值精确到小数点后几位//设置取值精确到小数点后几位
+                .backgroundColor("#000000")
+                .borderColor("#000000")
+                .style(
+                    AAStyle()
+                        .color("#FFD700")
+                        .fontSize(12f)
+                )
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip(aaTooltip)
+            return aaOptions
+        }
+
+        fun customAreaChartTooltipStyleWithFormatterFunction2(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Area)//图形类型
+                .title("2014 ~ 2020 汪星人生存指数")//图表主标题
+                .subtitle("数据来源:www.无任何可靠依据.com")//图表副标题
+                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
+                .dataLabelsEnabled(false)
+                .colorsTheme(arrayOf("#ff0000", "#0000ff"))
+                .stacking(AAChartStackingType.Normal)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("🐶狗子")
+                            .lineWidth(5f)
+                            .fillOpacity(0.5f)
+                            .data(
+                                arrayOf(
+                                    0.45,
+                                    0.43,
+                                    0.50,
+                                    0.55,
+                                    0.58,
+                                    0.62,
+                                    0.83,
+                                    0.39,
+                                    0.56,
+                                    0.67,
+                                    0.50,
+                                    0.34,
+                                    0.50,
+                                    0.67,
+                                    0.58,
+                                    0.29,
+                                    0.46,
+                                    0.23,
+                                    0.47,
+                                    0.46,
+                                    0.38,
+                                    0.56,
+                                    0.48,
+                                    0.36
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("🌲树木")
+                            .lineWidth(5f)
+                            .fillOpacity(0.5f)
+                            .data(
+                                arrayOf(
+                                    0.38,
+                                    0.31,
+                                    0.32,
+                                    0.32,
+                                    0.64,
+                                    0.66,
+                                    0.86,
+                                    0.47,
+                                    0.52,
+                                    0.75,
+                                    0.52,
+                                    0.56,
+                                    0.54,
+                                    0.60,
+                                    0.46,
+                                    0.63,
+                                    0.54,
+                                    0.51,
+                                    0.58,
+                                    0.64,
+                                    0.60,
+                                    0.45,
+                                    0.36,
+                                    0.67
+                                )
+                            )
+                    )
+                )
+
+            val aaTooltip = AATooltip()
+                .useHTML(true)
+                .formatter(
+                    """
+function () {
+        var s = '第' + '<b>' +  this.x + '</b>' + '年' + '<br/>';
+        var colorDot1 = '<span style=\"' + 'color:#1e90ff; font-size:13px\"' + '>◉</span> ';
+        var colorDot2 = '<span style=\"' + 'color:#ef476f; font-size:13px\"' + '>◉</span> ';
+        var s1 = colorDot1  + this.points[0].series.name + ': ' + this.points[0].y + '只' + '<br/>';
+        var s2 =  colorDot2 + this.points[1].series.name + ': ' + this.points[1].y + '棵';
+        s += s1 + s2;
+        return s;
+    }
+             """.trimIndent()
+                )
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip = aaTooltip
+            return aaOptions
+        }
+
+        fun customAreaChartTooltipStyleWithFormatterFunction3(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Area)//图形类型
+                .title("2014 ~ 2020 汪星人生存指数")//图表主标题
+                .subtitle("数据来源:www.无任何可靠依据.com")//图表副标题
+                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
+                .dataLabelsEnabled(false)
+                .categories(arrayOf("临床一期", "临床二期", "临床三期"))
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("上市")
+                            .data(arrayOf(0, 0, 7)),
+                        AASeriesElement()
+                            .name("中止")
+                            .data(arrayOf(4, 5, 1)),
+                        AASeriesElement()
+                            .name("无进展")
+                            .data(arrayOf(2, 0, 1)),
+                        AASeriesElement()
+                            .name("进行中")
+                            .data(arrayOf(3, 5, 2))
+                    )
+                )
+
+            val aaTooltip = AATooltip()
+                .useHTML(true)
+                .formatter(
+                    """
+function () {
+        var colorDot0 = '<span style=\"' + 'color:red; font-size:13px\"' + '>◉</span> ';
+        var colorDot1 = '<span style=\"' + 'color:mediumspringgreen; font-size:13px\"' + '>◉</span> ';
+        var colorDot2 = '<span style=\"' + 'color:deepskyblue; font-size:13px\"' + '>◉</span> ';
+        var colorDot3 = '<span style=\"' + 'color:sandybrown; font-size:13px\"' + '>◉</span> ';
+        var colorDotArr = [colorDot0, colorDot1, colorDot2, colorDot3];
+        var wholeContentString = this.points[0].x + '<br/>';
+        for (var i = 0;i < 4;i++) {
+            var yValue = this.points[i].y;
+            if (yValue != 0) {
+                var prefixStr = colorDotArr[i];
+                wholeContentString += prefixStr + this.points[i].series.name + ': ' + this.points[i].y + '<br/>';
+            }
+        }
+        return wholeContentString;
+    }
+                """.trimIndent()
+                )
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip = aaTooltip
+            return aaOptions
+        }
+
+        fun customAreaChartTooltipStyleWithFormatterFunction4(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Areaspline)//图形类型
+                .title("")//图表主标题
+                .subtitle("")//图表副标题
+                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
+                .dataLabelsEnabled(false)
+                .colorsTheme(arrayOf("#04d69f", "#1e90ff", "#ef476f", "#ffd066"))
+                .stacking(AAChartStackingType.Normal)
+                .markerRadius(0f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Tokyo Hot")
+                            .lineWidth(5.0f)
+                            .fillOpacity(0.4f)
+                            .data(
+                                arrayOf(
+                                    0.45,
+                                    0.43,
+                                    0.50,
+                                    0.55,
+                                    0.58,
+                                    0.62,
+                                    0.83,
+                                    0.39,
+                                    0.56,
+                                    0.67,
+                                    0.50,
+                                    0.34,
+                                    0.50,
+                                    0.67,
+                                    0.58,
+                                    0.29,
+                                    0.46,
+                                    0.23,
+                                    0.47,
+                                    0.46,
+                                    0.38,
+                                    0.56,
+                                    0.48,
+                                    0.36
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("Berlin Hot")
+                            .lineWidth(5.0f)
+                            .fillOpacity(0.4f)
+                            .data(
+                                arrayOf(
+                                    0.38,
+                                    0.31,
+                                    0.32,
+                                    0.32,
+                                    0.64,
+                                    0.66,
+                                    0.86,
+                                    0.47,
+                                    0.52,
+                                    0.75,
+                                    0.52,
+                                    0.56,
+                                    0.54,
+                                    0.60,
+                                    0.46,
+                                    0.63,
+                                    0.54,
+                                    0.51,
+                                    0.58,
+                                    0.64,
+                                    0.60,
+                                    0.45,
+                                    0.36,
+                                    0.67
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("New York Hot")
+                            .lineWidth(5.0f)
+                            .fillOpacity(0.4f)
+                            .data(
+                                arrayOf(
+                                    0.46,
+                                    0.32,
+                                    0.53,
+                                    0.58,
+                                    0.86,
+                                    0.68,
+                                    0.85,
+                                    0.73,
+                                    0.69,
+                                    0.71,
+                                    0.91,
+                                    0.74,
+                                    0.60,
+                                    0.50,
+                                    0.39,
+                                    0.67,
+                                    0.55,
+                                    0.49,
+                                    0.65,
+                                    0.45,
+                                    0.64,
+                                    0.47,
+                                    0.63,
+                                    0.64
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("London Hot")
+                            .lineWidth(5.0f)
+                            .fillOpacity(0.4f)
+                            .data(
+                                arrayOf(
+                                    0.60,
+                                    0.51,
+                                    0.52,
+                                    0.53,
+                                    0.64,
+                                    0.84,
+                                    0.65,
+                                    0.68,
+                                    0.63,
+                                    0.47,
+                                    0.72,
+                                    0.60,
+                                    0.65,
+                                    0.74,
+                                    0.66,
+                                    0.65,
+                                    0.71,
+                                    0.59,
+                                    0.65,
+                                    0.77,
+                                    0.52,
+                                    0.53,
+                                    0.58,
+                                    0.53
+                                )
+                            )
+                    )
+                )
+
+            val aaTooltip = AATooltip()
+                .useHTML(true)
+                .formatter(
+                    """
+function () {
+        var colorsArr = ["mediumspringgreen", "deepskyblue", "red", "sandybrown"];
+        var wholeContentString ='<span style=\"' + 'color:lightGray; font-size:13px\"' + '>◉ Time: ' + this.x + ' year</span><br/>';
+        for (var i = 0;i < 4;i++) {
+            var thisPoint = this.points[i];
+            var yValue = thisPoint.y;
+            if (yValue != 0) {
+                var spanStyleStartStr = '<span style=\"' + 'color:'+ colorsArr[i] + '; font-size:13px\"' + '>◉ ';
+                var spanStyleEndStr = '</span> <br/>';
+                wholeContentString += spanStyleStartStr + thisPoint.series.name + ': ' + thisPoint.y + '℃' + spanStyleEndStr;
+            }
+        }
+        return wholeContentString;
+    }
+                """.trimIndent()
+                )
+                .backgroundColor("#050505")
+                .borderColor("#050505")
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip = aaTooltip
+            return aaOptions
+        }
+
+        fun customBoxplotTooltipContent(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Boxplot)
+                .title("BOXPLOT CHART")
+                .subtitle("virtual data")
+                .yAxisTitle("℃")
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Observed Data")
+                            .color("#ef476f")
+                            .fillColor(AAGradientColor.deepSeaColor())
+                            .data(
+                                arrayOf(
+                                    arrayOf(760, 801, 848, 895, 965),
+                                    arrayOf(733, 853, 939, 980, 1080),
+                                    arrayOf(714, 762, 817, 870, 918),
+                                    arrayOf(724, 802, 806, 871, 950),
+                                    arrayOf(834, 836, 864, 882, 910)
+                                )
+                            )
+                    )
+                )
+
+            val pointFormatStr = (
+                    "◉</span> <b> {series.name}</b><br/>"
+                            + "最大值: {point.high}<br/>"
+                            + "Q2: {point.q3}<br/>"
+                            + "中位数: {point.median}<br/>"
+                            + "Q1: {point.q1}<br/>"
+                            + "最小值: {point.low}<br/>"
+                    )
+
+            val aaTooltip = AATooltip()
+                .useHTML(true)
+                .headerFormat("<em>实验号码: {point.key}</em><br/>")
+                .pointFormat(pointFormatStr)
+                .valueDecimals(2)//设置取值精确到小数点后几位//设置取值精确到小数点后几位
+                .backgroundColor("#000000")
+                .borderColor("#000000")
+                .style(
+                    AAStyle()
+                        .color("#1e90ff")
+                        .fontSize(12f)
+                )
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip = aaTooltip
+            return aaOptions
+        }
+
+        fun customYAxisLabels(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Line)//图形类型
+                .title("")//图表主标题
+                .subtitle("")//图表副标题
+                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
+                .dataLabelsEnabled(false)
+                .colorsTheme(arrayOf("#04d69f", "#1e90ff", "#ef476f", "#ffd066"))
+                .stacking(AAChartStackingType.Normal)
+                .markerRadius(8f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Tokyo Hot")
+                            .lineWidth(5.0f)
+                            .fillOpacity(0.4f)
+                            .data(
+                                arrayOf(
+                                    29.9,
+                                    71.5,
+                                    106.4,
+                                    129.2,
+                                    144.0,
+                                    176.0,
+                                    135.6,
+                                    148.5,
+                                    216.4,
+                                    194.1,
+                                    95.6,
+                                    54.4
+                                )
+                            )
+                    )
+                )
+
+            val aaYAxisLabels = AALabels()
+                .formatter(
+                    """
+function () {
+        var yValue = this.value;
+        if (yValue >= 200) {
+            return "极佳";
+        } else if (yValue >= 150 && yValue < 200) {
+            return "非常棒";
+        } else if (yValue >= 100 && yValue < 150) {
+            return "相当棒";
+        } else if (yValue >= 50 && yValue < 100) {
+            return "还不错";
+        } else {
+            return "一般";
+        }
+    }
+                """.trimIndent()
+                )
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.yAxis?.labels(aaYAxisLabels)
+
+            return aaOptions
+        }
+
+        fun customYAxisLabels2(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Line)//图形类型
+                .title("")//图表主标题
+                .subtitle("")//图表副标题
+                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)//折线连接点样式为外边缘空白
+                .dataLabelsEnabled(false)
+                .colorsTheme(arrayOf("#04d69f", "#1e90ff", "#ef476f", "#ffd066"))
+                .stacking(AAChartStackingType.Normal)
+                .markerRadius(8f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Tokyo Hot")
+                            .lineWidth(5.0f)
+                            .fillOpacity(0.4f)
+                            .data(
+                                arrayOf(
+                                    229.9,
+                                    771.5,
+                                    1106.4,
+                                    1129.2,
+                                    6644.0,
+                                    1176.0,
+                                    8835.6,
+                                    148.5,
+                                    8816.4,
+                                    6694.1,
+                                    7795.6,
+                                    9954.4
+                                )
+                            )
+                    )
+                )
+
+            val aaYAxisLabels = AALabels()
+                .style(
+                    AAStyle()
+                        .fontSize(10f)
+                        .fontWeight(AAChartFontWeightType.Bold)
+                        .color(AAColor.grayColor())
+                )
+                .formatter(
+                    """
+function () {
+        var yValue = this.value;
+        if (yValue == 0) {
+            return "0";
+        } else if (yValue == 2500) {
+            return "25%";
+        } else if (yValue == 5000) {
+            return "50%";
+        } else if (yValue == 7500) {
+            return "75%";
+        } else if (yValue == 10000) {
+            return "100%";
+        }
+    }
+                """.trimIndent()
+                )
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.yAxis!!
+                .opposite(true)
+                .tickWidth(2f)
+                .lineWidth(1.5f)//Y轴轴线颜色
+                .lineColor(AAColor.lightGrayColor())//Y轴轴线颜色
+                .gridLineWidth(0f)//Y轴网格线宽度
+                .tickPositions(arrayOf(0, 2500, 5000, 7500, 10000))
+                .labels(aaYAxisLabels)
+
+            return aaOptions
+        }
+
+        fun customStackedAndGroupedColumnChartTooltip(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .title("Total fruit consumption, grouped by gender")
+                .subtitle("stacked and grouped")
+                .yAxisTitle("Number of fruits")
+                .chartType(AAChartType.Column)
+                .legendEnabled(false)//隐藏图例(底部可点按的小圆点)
+                .stacking(AAChartStackingType.Normal)
+                .categories(arrayOf("Apples", "Oranges", "Pears", "Grapes", "Bananas"))
+                .dataLabelsEnabled(true)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("John")
+                            .data(arrayOf(5, 3, 4, 7, 2))
+                            .stack("male"),
+                        AASeriesElement()
+                            .name("Joe")
+                            .data(arrayOf(3, 4, 4, 2, 5))
+                            .stack("male"),
+                        AASeriesElement()
+                            .name("Jane")
+                            .data(arrayOf(2, 5, 6, 2, 1))
+                            .stack("female"),
+                        AASeriesElement()
+                            .name("Janet")
+                            .data(arrayOf(3, 0, 4, 4, 3))
+                            .stack("female")
+                    )
+                )
+
+            /*Custom Tooltip Style --- 自定义图表浮动提示框样式及内容*/
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip
+                ?.shared(false)
+                ?.formatter(
+                    """
+function () {
+                return '<b>'
+                + this.x
+                + '</b><br/>'
+                + this.series.name
+                + ': '
+                + this.y
+                + '<br/>'
+                + 'Total: '
+                + this.point.stackTotal;
+     }
+                """.trimIndent()
+                )
+
+            return aaOptions
+        }
+
+        fun customDoubleXAxesChart(): AAOptions {
+            val gradientColorDic1 = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToTop,
+                "#7052f4",
+                "#00b0ff"//颜色字符串设置支持十六进制类型和 rgba 类型
+            )
+
+            val gradientColorDic2 = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToTop,
+                "#EF71FF",
+                "#4740C8"//颜色字符串设置支持十六进制类型和 rgba 类型
+            )
+
+            val aaChart = AAChart()
+                .type(AAChartType.Bar)
+
+            val aaTitle = AATitle()
+                .text("2015 年德国人口金字塔")
+                .style(
+                    AAStyle()
+                        .color("#000000")
+                        .fontSize(12.0f)
+                )
+
+            val aaCategories = arrayOf(
+                "0-4", "5-9", "10-14", "15-19", "20-24", "25-29",
+                "30-34", "35-39", "40-44", "45-49", "50-54", "55-59", "60-64", "65-69", "70-74",
+                "75-79", "80-84", "85-89", "90-94", "95-99", "100 + "
+            )
+
+            val aaXAxis1 = AAXAxis()
+                .reversed(true)
+                .categories(aaCategories)
+                .labels(
+                    AALabels()
+                        .step(1)
+                )
+
+            val aaXAxis2 = AAXAxis()
+                .reversed(true)
+                .opposite(true)
+                .categories(aaCategories)
+                .linkedTo(0)
+                .labels(
+                    AALabels()
+                        .step(1)
+                )
+
+            val aaYAxis = AAYAxis()
+                .gridLineWidth(0f)// Y 轴网格线宽度
+                .title(
+                    AATitle()
+                        .text("")
+                )//Y 轴标题
+                .labels(
+                    AALabels()
+                        .formatter(
+                            """
+function () {
+    return (Math.abs(this.value) / 1000000) + 'M';
+}
+                    """.trimIndent()
+                        )
+                )
+                .min(-4000000f)
+                .max(4000000f)
+
+            val aaPlotOptions = AAPlotOptions()
+                .series(
+                    AASeries()
+                        .animation(
+                            AAAnimation()
+                                .duration(800)
+                                .easing(AAChartAnimationType.Bounce)
+                        )
+                        .stacking(AAChartStackingType.Normal)
+                )
+
+            val aaTooltip = AATooltip()
+                .enabled(true)
+                .shared(false)
+                .formatter(
+                    """
+function () {
+    return '<b>' + this.series.name + ', age ' + this.point.category + '</b><br/>' +
+        '人口: ' + Highcharts.numberFormat(Math.abs(this.point.y), 0);
+}
+                """.trimIndent()
+                )
+
+            val aaSeriesElement1 = AASeriesElement()
+                .name("Men")
+                .color(gradientColorDic1)
+                .data(
+                    arrayOf(
+                        -1746181,
+                        -1884428,
+                        -2089758,
+                        -2222362,
+                        -2537431,
+                        -2507081,
+                        -2443179,
+                        -2664537,
+                        -3556505,
+                        -3680231,
+                        -3143062,
+                        -2721122,
+                        -2229181,
+                        -2227768,
+                        -2176300,
+                        -1329968,
+                        -836804,
+                        -354784,
+                        -90569,
+                        -28367,
+                        -3878
+                    )
+                )
+
+            val aaSeriesElement2 = AASeriesElement()
+                .name("Women")
+                .color(gradientColorDic2)
+                .data(
+                    arrayOf(
+                        1656154,
+                        1787564,
+                        1981671,
+                        2108575,
+                        2403438,
+                        2366003,
+                        2301402,
+                        2519874,
+                        3360596,
+                        3493473,
+                        3050775,
+                        2759560,
+                        2304444,
+                        2426504,
+                        2568938,
+                        1785638,
+                        1447162,
+                        1005011,
+                        330870,
+                        130632,
+                        21208
+                    )
+                )
+
+            return AAOptions()
+                .chart(aaChart)
+                .title(aaTitle)
+                .xAxisArray(arrayOf(aaXAxis1, aaXAxis2))
+                .yAxis(aaYAxis)
+                .plotOptions(aaPlotOptions)
+                .tooltip(aaTooltip)
+                .series(arrayOf(aaSeriesElement1, aaSeriesElement2))
+        }
+
+        fun customArearangeChartTooltip(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Areasplinerange)
+                .title("Area spline range chart")
+                .subtitle("virtual data")
+                .yAxisTitle("℃")
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("2020")
+                            .data(
+                                arrayOf(
+                                    /* 2014-06-01 */
+                                    arrayOf(140158080, 5.1, 20.6),
+                                    arrayOf(140166720, 6.6, 24.6),
+                                    arrayOf(140175360, 9.7, 22.2),
+                                    arrayOf(140184000, 9.6, 21.6),
+                                    arrayOf(140192640, 13.0, 20.0),
+                                    arrayOf(140201280, 12.9, 18.2),
+                                    arrayOf(140209920, 8.5, 23.2),
+                                    arrayOf(140218560, 9.2, 21.4),
+                                    arrayOf(140227200, 10.5, 22.0),
+                                    arrayOf(140235840, 7.3, 23.4),
+                                    arrayOf(140244480, 12.1, 18.2),
+                                    arrayOf(140253120, 11.1, 13.3),
+                                    arrayOf(140261760, 10.0, 20.7),
+                                    arrayOf(140270400, 5.8, 23.4),
+                                    arrayOf(140279040, 7.4, 20.1),
+                                    arrayOf(140287680, 10.3, 21.9),
+                                    arrayOf(140296320, 7.8, 16.8),
+                                    arrayOf(140304960, 11.6, 19.7),
+                                    arrayOf(140313600, 9.8, 16.0),
+                                    arrayOf(140322240, 10.7, 14.4),
+                                    arrayOf(140330880, 9.0, 15.5),
+                                    arrayOf(140339520, 5.1, 13.3),
+                                    arrayOf(140348160, 10.0, 19.3),
+                                    arrayOf(140356800, 5.2, 22.1),
+                                    arrayOf(140365440, 6.3, 21.3),
+                                    arrayOf(140374080, 5.5, 21.1),
+                                    arrayOf(140382720, 8.4, 19.7),
+                                    arrayOf(140391360, 7.1, 23.3),
+                                    arrayOf(140400000, 6.1, 20.8),
+                                    arrayOf(140408640, 8.4, 22.6)
+                                )
+                            )
+                    )
+                )
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+
+            aaOptions.tooltip!!
+                .useHTML(true)
+                .formatter(
+                    """
+function () {
+            var myPointOptions = this.points[0].point.options;
+            var xValue = myPointOptions.x;
+            var lowValue = myPointOptions.low;
+            var highValue = myPointOptions.high;
+            var titleStr = '🌕 this is my custom tooltip description text content <br>';
+            var xValueStr = '🌖 this is x value  : ' + xValue + '<br>';
+            var lowValueStr = ' 🌗 this is low value  : ' + lowValue + '<br>';
+            var highValueStr = '🌘 this is high value : ' + highValue + '<br>';
+            var tooltipDescStr =  titleStr + xValueStr + lowValueStr + highValueStr;
+            return tooltipDescStr;
+        }
+                 """.trimIndent()
+                )
+                .backgroundColor("#000000")
+                .borderColor("#000000")
+                .style(
+                    AAStyle()
+                        .color("#FFD700")
+                        .fontSize(12f)
+                )
+
+            return aaOptions
+        }
+
+        fun customLineChartOriginalPointPositionByConfiguringXAxisFormatterAndTooltipFormatter(): AAOptions {
+            val categories = arrayOf(
+                "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
+            )
+            val categoryJSArrStr = javaScriptArrayStringWithJavaArray(categories as Array<Any>)!!
+
+            var tooltipFormatter = """
+function () {
+        return  'The value for <b>' + $categoryJSArrStr[this.x] +
+        '</b> is <b>' + this.y + '</b> ' + "℃";
+        }
+            """.trimIndent()
+
+            var xAxisLabelsFormatter = """
+function () {
+        return $categoryJSArrStr[this.value];
+        }
+            """.trimIndent()
+
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Area)
+                .title("THE HEAT OF PROGRAMMING LANGUAGE")
+                .subtitle("Virtual Data")
+                .dataLabelsEnabled(false)
+                .yAxisGridLineWidth(0f)
+                .touchEventEnabled(true)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Tokyo")
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    9.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    25.2,
+                                    26.5,
+                                    23.3,
+                                    18.3,
+                                    13.9,
+                                    9.6
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("NewYork")
+                            .data(
+                                arrayOf(
+                                    0.2,
+                                    0.8,
+                                    5.7,
+                                    11.3,
+                                    17.0,
+                                    22.0,
+                                    24.8,
+                                    24.1,
+                                    20.1,
+                                    14.1,
+                                    8.6,
+                                    2.5
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("London")
+                            .data(
+                                arrayOf(
+                                    0.9,
+                                    0.6,
+                                    3.5,
+                                    8.4,
+                                    13.5,
+                                    17.0,
+                                    18.6,
+                                    17.9,
+                                    14.3,
+                                    9.0,
+                                    3.9,
+                                    1.0
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("Berlin")
+                            .data(
+                                arrayOf(
+                                    3.9,
+                                    4.2,
+                                    5.7,
+                                    8.5,
+                                    11.9,
+                                    15.2,
+                                    17.0,
+                                    16.6,
+                                    14.2,
+                                    10.3,
+                                    6.6,
+                                    4.8
+                                )
+                            )
+                    )
+                )
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip
+                ?.useHTML(true)
+                ?.formatter(tooltipFormatter)
+            aaOptions.xAxis?.labels
+                ?.formatter(xAxisLabelsFormatter)
+            return aaOptions
+        }
+
+        fun customTooltipWhichDataSourceComeFromOutSideRatherThanSeries(): AAOptions {
+            val aaChartModel = AAChartModel()
+                .chartType(AAChartType.Column) //图表类型
+                .title("")
+                .yAxisTitle("") //设置 Y 轴标题
+                .yAxisLineWidth(1f) //Y轴轴线线宽为0即是隐藏Y轴轴线
+                .yAxisGridLineWidth(1f) //y轴横向分割线宽度为1(为0即是隐藏分割线)
+                .xAxisGridLineWidth(1f) //x轴横向分割线宽度为1(为0即是隐藏分割线)
+                .colorsTheme(arrayOf("#FFD700" /*纯金色*/))
+                .categories(
+                    arrayOf(
+                        "一月", "二月", "三月", "四月", "五月", "六月",
+                        "七月", "八月", "九月", "十月", "十一月", "十二月"
+                    )
+                )
+                .yAxisMax(110f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("2017")
+                            .data(
+                                arrayOf(55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55)
+                            )
+                    )
+                )
+
+            val 看近时长数组 = arrayOf<Any>(70, 69, 95, 14, 18, 21, 25, 26, 23, 18, 13, 96)
+            val 看中时长数组 = arrayOf<Any>(20, 80, 57, 11, 17, 22, 24, 24, 20, 14, 86, 25)
+            val 看远时长数组 = arrayOf<Any>(90, 60, 35, 84, 13, 17, 18, 17, 14, 90, 39, 10)
+            val 总时长数组 = arrayOfNulls<Any>(12)
+            for (i in 0..11) {
+                val 单个总时长 = (看近时长数组[i] as Int
+                        + 看中时长数组[i] as Int
+                        + 看远时长数组[i] as Int)
+                总时长数组[i] = 单个总时长
+            }
+            val 有效时长数组 =
+                arrayOf<Any>(39, 42, 57, 85, 19, 15, 17, 16, 14, 13, 66, 48)
+            val 切换次数数组 = arrayOf<Any>(
+                randomNumber(), randomNumber(), randomNumber(),
+                randomNumber(), randomNumber(), randomNumber(),
+                randomNumber(), randomNumber(), randomNumber(),
+                randomNumber(), randomNumber(), randomNumber()
+            )
+            val 停止次数数组 = arrayOf<Any>(
+                randomNumber(), randomNumber(), randomNumber(),
+                randomNumber(), randomNumber(), randomNumber(),
+                randomNumber(), randomNumber(), randomNumber(),
+                randomNumber(), randomNumber(), randomNumber()
+            )
+            val 干预次数数组 = arrayOf<Any>(
+                randomNumber(), randomNumber(), randomNumber(),
+                randomNumber(), randomNumber(), randomNumber(),
+                randomNumber(), randomNumber(), randomNumber(),
+                randomNumber(), randomNumber(), randomNumber()
+            )
+            val 总时长JS数组 = javaScriptArrayStringWithJavaArray(总时长数组 as Array<Any>)
+            val 有效时长JS数组 = javaScriptArrayStringWithJavaArray(有效时长数组)
+            val 看近时长JS数组 = javaScriptArrayStringWithJavaArray(看近时长数组)
+            val 看中时长JS数组 = javaScriptArrayStringWithJavaArray(看中时长数组)
+            val 看远时长JS数组 = javaScriptArrayStringWithJavaArray(看远时长数组)
+            val 切换次数JS数组 = javaScriptArrayStringWithJavaArray(切换次数数组)
+            val 停止次数JS数组 = javaScriptArrayStringWithJavaArray(停止次数数组)
+            val 干预次数JS数组 = javaScriptArrayStringWithJavaArray(干预次数数组)
+
+            var jsFormatterStr: String? = """
+function () {
+        let 总时长数组 = $总时长JS数组;
+        let 有效时长数组 = $有效时长JS数组;
+        let 看近时长数组 = $看近时长JS数组;
+        let 看中时长数组 = $看中时长JS数组;
+        let 看远时长数组 = $看远时长JS数组;
+        let 切换次数数组 = $切换次数JS数组;
+        let 停止次数数组 = $停止次数JS数组;
+        let 干预次数数组 = $干预次数JS数组;
+        let 时间单位后缀 = "min<br/>";
+        let 频率单位后缀 = "次<br/>";
+        
+        let 单个总时长字符串 = "总时长: &nbsp &nbsp" + 总时长数组[this.point.index] + 时间单位后缀;
+        let 单个有效时长字符串 = "有效时长: &nbsp" + 有效时长数组[this.point.index] + 时间单位后缀;
+        let 单个看近时长字符串 = "看近时长: &nbsp" + 看近时长数组[this.point.index] + 时间单位后缀;
+        let 单个看中时长字符串 = "看中时长: &nbsp" + 看中时长数组[this.point.index] + 时间单位后缀;
+        let 单个看远时长字符串 = "看远时长: &nbsp" + 看远时长数组[this.point.index] + 时间单位后缀;
+        let 单个切换次数字符串 = "切换次数: &nbsp" + 切换次数数组[this.point.index] + 频率单位后缀;
+        let 单个停止次数字符串 = "停止次数: &nbsp" + 停止次数数组[this.point.index] + 频率单位后缀;
+        let 单个干预次数字符串 = "干预次数: &nbsp" + 干预次数数组[this.point.index] + 频率单位后缀;
+        
+        let wholeContentString =  单个总时长字符串 + 单个有效时长字符串 + 单个看近时长字符串 + 单个看中时长字符串 + 单个看远时长字符串 + 单个切换次数字符串 + 单个停止次数字符串 + 单个干预次数字符串;
+        
+        return wholeContentString;
+        }
+            """.trimIndent()
+
+            val aaOptions = AAOptionsConstructor.configureChartOptions(aaChartModel)
+            aaOptions.tooltip!!
+                //‼️以 this.point.index 这种方式获取选中的点的索引必须设置 tooltip 的 shared 为 false
+                //‼️共享时是 this.points (由多个 point 组成的 points 数组)
+                //‼️非共享时是 this.point 单个 point 对象
+                .shared(false)
+                .useHTML(true)
+                .formatter(jsFormatterStr!!)
+                .backgroundColor("#000000") //黑色背景色
+                .borderColor("#FFD700") //边缘颜色纯金色
+                .style(
+                    AAStyle()
+                        .color("#FFD700") //文字颜色纯金色
+                        .fontSize(12f)
+                )
+            return aaOptions
+        }
+
+
+        private fun randomNumber(): Int {
+            val max = 38
+            val min = 1
+            return (Math.random() * (max - min) + min).toInt()
+        }
+
+        private fun javaScriptArrayStringWithJavaArray(javaArray: Array<Any>): String {
+            var originalJsArrStr = ""
+            for (i in javaArray!!.indices) {
+                val element = javaArray[i]
+                originalJsArrStr = "$originalJsArrStr'$element',"
+            }
+            return "[$originalJsArrStr]"
+        }
+
+    }
+}

+ 1295 - 0
sample/src/main/java/com/github/aachartmodel/aainfographics/demo/chartcomposer/MixedChartComposer.kt

@@ -0,0 +1,1295 @@
+/**
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore            ◉◉◉
+ * ◉◉◉   https://github.com/AAChartModel/AAChartCore-Kotlin     ◉◉◉
+ * ◉◉◉...................................................       ◉◉◉
+ * ◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉ ...... SOURCE CODE ......◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉
+ */
+
+/**
+
+ * -------------------------------------------------------------------------------
+ *
+ *  🌕 🌖 🌗 🌘  ❀❀❀   WARM TIPS!!!   ❀❀❀ 🌑 🌒 🌓 🌔
+ *
+ * Please contact me on GitHub,if there are any problems encountered in use.
+ * GitHub Issues : https://github.com/AAChartModel/AAChartCore-Kotlin/issues
+ * -------------------------------------------------------------------------------
+ * And if you want to contribute for this project, please contact me as well
+ * GitHub        : https://github.com/AAChartModel
+ * StackOverflow : https://stackoverflow.com/users/7842508/codeforu
+ * JianShu       : http://www.jianshu.com/u/f1e6753d4254
+ * SegmentFault  : https://segmentfault.com/u/huanghunbieguan
+ *
+ * -------------------------------------------------------------------------------
+
+ */
+package com.github.aachartmodel.aainfographics.demo.chartcomposer
+
+import com.github.aachartmodel.aainfographics.aachartcreator.*
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AADataLabels
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAMarker
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAPie
+import com.github.aachartmodel.aainfographics.aaoptionsmodel.AAStyle
+import com.github.aachartmodel.aainfographics.aatools.AAColor
+import com.github.aachartmodel.aainfographics.aatools.AAGradientColor
+import com.github.aachartmodel.aainfographics.aatools.AALinearGradientDirection
+
+class MixedChartComposer {
+    companion object {
+        internal fun arearangeMixedLine(): AAChartModel {
+            return AAChartModel()
+                .title("LANGUAGE MARKET SHARES JANUARY,2020 TO MAY")
+                .subtitle("virtual data")
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Temperature")
+                            .color("#1E90FF")
+                            .type(AAChartType.Line)
+                            .data(
+                                arrayOf(
+                                    arrayOf(12464064, 21.5),
+                                    arrayOf(12464928, 22.1),
+                                    arrayOf(12465792, 23.0),
+                                    arrayOf(12466656, 23.8),
+                                    arrayOf(12467520, 21.4),
+                                    arrayOf(12468384, 21.3),
+                                    arrayOf(12469248, 18.3),
+                                    arrayOf(12470112, 15.4),
+                                    arrayOf(12470976, 16.4),
+                                    arrayOf(12471840, 17.7),
+                                    arrayOf(12472704, 17.5),
+                                    arrayOf(12473568, 17.6),
+                                    arrayOf(12474432, 17.7),
+                                    arrayOf(12475296, 16.8),
+                                    arrayOf(12476160, 17.7),
+                                    arrayOf(12477024, 16.3),
+                                    arrayOf(12477888, 17.8),
+                                    arrayOf(12478752, 18.1),
+                                    arrayOf(12479616, 17.2),
+                                    arrayOf(12480480, 14.4),
+                                    arrayOf(12481344, 13.7),
+                                    arrayOf(12482208, 15.7),
+                                    arrayOf(12483072, 14.6),
+                                    arrayOf(12483936, 15.3),
+                                    arrayOf(12484800, 15.3),
+                                    arrayOf(12485664, 15.8),
+                                    arrayOf(12486528, 15.2),
+                                    arrayOf(12487392, 14.8),
+                                    arrayOf(12488256, 14.4),
+                                    arrayOf(12489120, 15.0),
+                                    arrayOf(12489984, 13.6)
+                                )
+                            )
+                            .zIndex(1),
+                        AASeriesElement()
+                            .name("Range")
+                            .color("#1E90FF")
+                            .type(AAChartType.Arearange)
+                            .lineWidth(0f)
+                            .fillOpacity(0.3f)
+                            .data(
+                                arrayOf(
+                                    arrayOf(12464064, 14.3, 27.7),
+                                    arrayOf(12464928, 14.5, 27.8),
+                                    arrayOf(12465792, 15.5, 29.6),
+                                    arrayOf(12466656, 16.7, 30.7),
+                                    arrayOf(12467520, 16.5, 25.0),
+                                    arrayOf(12468384, 17.8, 25.7),
+                                    arrayOf(12469248, 13.5, 24.8),
+                                    arrayOf(12470112, 10.5, 21.4),
+                                    arrayOf(12470976, 9.20, 23.8),
+                                    arrayOf(12471840, 11.6, 21.8),
+                                    arrayOf(12472704, 10.7, 23.7),
+                                    arrayOf(12473568, 11.0, 23.3),
+                                    arrayOf(12474432, 11.6, 23.7),
+                                    arrayOf(12475296, 11.8, 20.7),
+                                    arrayOf(12476160, 12.6, 22.4),
+                                    arrayOf(12477024, 13.6, 19.6),
+                                    arrayOf(12477888, 11.4, 22.6),
+                                    arrayOf(12478752, 13.2, 25.0),
+                                    arrayOf(12479616, 14.2, 21.6),
+                                    arrayOf(12480480, 13.1, 17.1),
+                                    arrayOf(12481344, 12.2, 15.5),
+                                    arrayOf(12482208, 12.0, 20.8),
+                                    arrayOf(12483072, 12.0, 17.1),
+                                    arrayOf(12483936, 12.7, 18.3),
+                                    arrayOf(12484800, 12.4, 19.4),
+                                    arrayOf(12485664, 12.6, 19.9),
+                                    arrayOf(12486528, 11.9, 20.2),
+                                    arrayOf(12487392, 11.0, 19.3),
+                                    arrayOf(12488256, 10.8, 17.8),
+                                    arrayOf(12489120, 11.8, 18.5),
+                                    arrayOf(12489984, 10.8, 16.1)
+                                )
+                            )
+                            .zIndex(0)
+                    )
+                )
+        }
+
+        fun configureColumnrangeMixedLineChart(): AAChartModel {
+            return AAChartModel()
+                .colorsTheme(
+                    arrayOf(
+                        "#1e90ff",
+                        "#EA007B",
+                        "#49C1B6",
+                        "#FDC20A",
+                        "#F78320",
+                        "#068E81"
+                    )
+                )//主题颜色数组
+                .title("")//图形标题
+                .subtitle("")//图形副标题
+                .chartType(AAChartType.Line)
+                .dataLabelsEnabled(false)
+                .markerSymbolStyle(AAChartSymbolStyleType.BorderBlank)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Temperature")
+                            .type(AAChartType.Columnrange)  //COLUMN_RANGE
+                            .data(
+                                arrayOf(
+                                    arrayOf(-9.7, 9.4),
+                                    arrayOf(-8.7, 6.5),
+                                    arrayOf(-3.5, 9.4),
+                                    arrayOf(-1.4, 19.9),
+                                    arrayOf(0.0, 22.6),
+                                    arrayOf(2.9, 29.5),
+                                    arrayOf(9.2, 30.7),
+                                    arrayOf(7.3, 26.5),
+                                    arrayOf(4.4, 18.0),
+                                    arrayOf(-3.1, 11.4),
+                                    arrayOf(-5.2, 10.4),
+                                    arrayOf(-9.9, 16.8)
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("Tokyo")
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    9.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    25.2,
+                                    26.5,
+                                    23.3,
+                                    18.3,
+                                    13.9,
+                                    9.6
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("New York")
+                            .data(
+                                arrayOf(
+                                    0.2,
+                                    0.8,
+                                    5.7,
+                                    11.3,
+                                    17.0,
+                                    22.0,
+                                    24.8,
+                                    24.1,
+                                    20.1,
+                                    14.1,
+                                    8.6,
+                                    2.5
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("Berlin")
+                            .data(
+                                arrayOf(
+                                    0.9,
+                                    0.6,
+                                    3.5,
+                                    8.4,
+                                    13.5,
+                                    17.0,
+                                    18.6,
+                                    17.9,
+                                    14.3,
+                                    9.0,
+                                    3.9,
+                                    1.0
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("London")
+                            .data(
+                                arrayOf(
+                                    3.9,
+                                    4.2,
+                                    5.7,
+                                    8.5,
+                                    11.9,
+                                    15.2,
+                                    17.0,
+                                    16.6,
+                                    14.2,
+                                    10.3,
+                                    6.6,
+                                    4.8
+                                )
+                            )
+                    )
+                )
+        }
+
+        fun configureStackingColumnMixedLineChart(): AAChartModel {
+            return AAChartModel()
+                .title("16年1月-16年11月充值客单分析")//图形标题
+                .subtitle("BY MICVS")//图形副标题
+                .chartType(AAChartType.Column)
+                .stacking(AAChartStackingType.Normal)
+                .legendEnabled(true)
+                .colorsTheme(
+                    arrayOf(
+                        AAGradientColor.oceanBlueColor(),
+                        AAGradientColor.sanguineColor(),
+                        AAGradientColor.lusciousLimeColor()
+                    )
+                )
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("新用户")
+                            .data(
+                                arrayOf(
+                                    82.89,
+                                    67.54,
+                                    62.07,
+                                    59.43,
+                                    67.02,
+                                    67.09,
+                                    35.66,
+                                    71.78,
+                                    81.61,
+                                    78.85,
+                                    79.12,
+                                    72.30
+                                )
+                            )
+                            .dataLabels(
+                                AADataLabels()
+                                    .enabled(true)
+                                    .style(
+                                        AAStyle()
+                                            .color(AAColor.redColor())
+                                            .fontSize(11f)
+                                    )
+                            ),
+                        AASeriesElement()
+                            .name("老用户")
+                            .data(
+                                arrayOf(
+                                    198.66,
+                                    330.81,
+                                    151.95,
+                                    160.12,
+                                    222.56,
+                                    229.05,
+                                    128.53,
+                                    250.91,
+                                    224.47,
+                                    473.99,
+                                    126.85,
+                                    260.50
+                                )
+                            )
+                            .dataLabels(
+                                AADataLabels()
+                                    .enabled(true)
+                                    .style(
+                                        AAStyle()
+                                            .color("#000000")
+                                            .fontSize(11f)
+                                    )
+                            ),
+                        AASeriesElement()
+                            .name("总量")
+                            .type(AAChartType.Line)
+                            .data(
+                                arrayOf(
+                                    281.55,
+                                    398.35,
+                                    214.02,
+                                    219.55,
+                                    289.57,
+                                    296.14,
+                                    164.18,
+                                    322.69,
+                                    306.08,
+                                    552.84,
+                                    205.97,
+                                    332.79
+                                )
+                            )
+                            .dataLabels(
+                                AADataLabels()
+                                    .enabled(true)
+                                    .style(
+                                        AAStyle()
+                                            .color("#000000")
+                                            .fontSize(15f)
+                                            .fontWeight(AAChartFontWeightType.Bold)
+                                    )
+                            )
+                    )
+                )
+        }
+
+        fun dashStyleTypeMixedChart(): AAChartModel {
+            return AAChartModel()
+                .chartType(AAChartType.Spline)//图形类型
+                .dataLabelsEnabled(false)//是否显示数字
+                .stacking(AAChartStackingType.Normal)
+                .markerRadius(0f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("SolidLine")
+                            .lineWidth(3f)
+                            .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
+                        AASeriesElement()
+                            .name("Dash")
+                            .lineWidth(3f)
+                            .dashStyle(AAChartLineDashStyleType.Dash)
+                            .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
+                        AASeriesElement()
+                            .name("DashDot")
+                            .lineWidth(3f)
+                            .dashStyle(AAChartLineDashStyleType.DashDot)
+                            .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
+                        AASeriesElement()
+                            .name("LongDash")
+                            .lineWidth(3f)
+                            .dashStyle(AAChartLineDashStyleType.LongDash)
+                            .data(arrayOf(50, 320, 230, 370, 230, 400, 320)),
+                        AASeriesElement()
+                            .name("LongDashDot")
+                            .lineWidth(3f)
+                            .dashStyle(AAChartLineDashStyleType.LongDashDot)
+                            .data(arrayOf(50, 320, 230, 370, 230, 400, 320))
+                    )
+                )
+        }
+
+        fun negativeColorMixedChart(): AAChartModel {
+            return AAChartModel()
+                .dataLabelsEnabled(false)//是否显示数字
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Column")
+                            .type(AAChartType.Column)
+                            .data(
+                                arrayOf(
+                                    -6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0,
+                                    -6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0,
+                                    -6.4, -5.2, -3.0, 0.2, 2.3, 5.5, 8.4, 8.3, 5.1, 0.9, -1.1, -4.0
+                                )
+                            )
+                            .color("#0088FF")
+                            .negativeColor("#FF0000")
+                            .threshold(4f)//default:0
+                    )
+                )
+        }
+
+        internal fun scatterMixedLine(): AAChartModel {
+            return AAChartModel()
+                .dataLabelsEnabled(false)//是否显示数字
+                .chartType(AAChartType.Scatter)
+                .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)
+                .markerSymbol(AAChartSymbolType.Circle)
+                .markerRadius(8f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Scatter")
+                            .data(
+                                arrayOf(
+                                    arrayOf(0.067732, 3.176513),
+                                    arrayOf(0.427810, 3.816464),
+                                    arrayOf(0.995731, 4.550095),
+                                    arrayOf(0.738336, 4.256571),
+                                    arrayOf(0.981083, 4.560815),
+                                    arrayOf(0.526171, 3.929515),
+                                    arrayOf(0.378887, 3.526170),
+                                    arrayOf(0.033859, 3.156393),
+                                    arrayOf(0.132791, 3.110301),
+                                    arrayOf(0.138306, 3.149813),
+                                    arrayOf(0.247809, 3.476346),
+                                    arrayOf(0.648270, 4.119688),
+                                    arrayOf(0.731209, 4.282233),
+                                    arrayOf(0.236833, 3.486582),
+                                    arrayOf(0.969788, 4.655492),
+                                    arrayOf(0.607492, 3.965162),
+                                    arrayOf(0.358622, 3.514900),
+                                    arrayOf(0.147846, 3.125947),
+                                    arrayOf(0.637820, 4.094115),
+                                    arrayOf(0.230372, 3.476039),
+                                    arrayOf(0.070237, 3.210610),
+                                    arrayOf(0.067154, 3.190612),
+                                    arrayOf(0.925577, 4.631504),
+                                    arrayOf(0.717733, 4.295890),
+                                    arrayOf(0.015371, 3.085028),
+                                    arrayOf(0.335070, 3.448080),
+                                    arrayOf(0.040486, 3.167440),
+                                    arrayOf(0.212575, 3.364266),
+                                    arrayOf(0.617218, 3.993482),
+                                    arrayOf(0.541196, 3.891471),
+                                    arrayOf(0.045353, 3.143259),
+                                    arrayOf(0.126762, 3.114204),
+                                    arrayOf(0.556486, 3.851484),
+                                    arrayOf(0.901144, 4.621899),
+                                    arrayOf(0.958476, 4.580768),
+                                    arrayOf(0.274561, 3.620992),
+                                    arrayOf(0.394396, 3.580501),
+                                    arrayOf(0.872480, 4.618706),
+                                    arrayOf(0.409932, 3.676867),
+                                    arrayOf(0.908969, 4.641845),
+                                    arrayOf(0.166819, 3.175939),
+                                    arrayOf(0.665016, 4.264980),
+                                    arrayOf(0.263727, 3.558448),
+                                    arrayOf(0.231214, 3.436632),
+                                    arrayOf(0.552928, 3.831052),
+                                    arrayOf(0.047744, 3.182853),
+                                    arrayOf(0.365746, 3.498906),
+                                    arrayOf(0.495002, 3.946833),
+                                    arrayOf(0.493466, 3.900583),
+                                    arrayOf(0.792101, 4.238522),
+                                    arrayOf(0.769660, 4.233080),
+                                    arrayOf(0.251821, 3.521557),
+                                    arrayOf(0.181951, 3.203344),
+                                    arrayOf(0.808177, 4.278105),
+                                    arrayOf(0.334116, 3.555705),
+                                    arrayOf(0.338630, 3.502661),
+                                    arrayOf(0.452584, 3.859776),
+                                    arrayOf(0.694770, 4.275956),
+                                    arrayOf(0.590902, 3.916191),
+                                    arrayOf(0.307928, 3.587961),
+                                    arrayOf(0.148364, 3.183004),
+                                    arrayOf(0.702180, 4.225236),
+                                    arrayOf(0.721544, 4.231083),
+                                    arrayOf(0.666886, 4.240544),
+                                    arrayOf(0.124931, 3.222372),
+                                    arrayOf(0.618286, 4.021445),
+                                    arrayOf(0.381086, 3.567479),
+                                    arrayOf(0.385643, 3.562580),
+                                    arrayOf(0.777175, 4.262059),
+                                    arrayOf(0.116089, 3.208813),
+                                    arrayOf(0.115487, 3.169825),
+                                    arrayOf(0.663510, 4.193949),
+                                    arrayOf(0.254884, 3.491678),
+                                    arrayOf(0.993888, 4.533306),
+                                    arrayOf(0.295434, 3.550108),
+                                    arrayOf(0.952523, 4.636427),
+                                    arrayOf(0.307047, 3.557078),
+                                    arrayOf(0.277261, 3.552874),
+                                    arrayOf(0.279101, 3.494159),
+                                    arrayOf(0.175724, 3.206828),
+                                    arrayOf(0.156383, 3.195266),
+                                    arrayOf(0.733165, 4.221292),
+                                    arrayOf(0.848142, 4.413372),
+                                    arrayOf(0.771184, 4.184347),
+                                    arrayOf(0.429492, 3.742878),
+                                    arrayOf(0.162176, 3.201878),
+                                    arrayOf(0.917064, 4.648964),
+                                    arrayOf(0.315044, 3.510117),
+                                    arrayOf(0.201473, 3.274434),
+                                    arrayOf(0.297038, 3.579622),
+                                    arrayOf(0.336647, 3.489244),
+                                    arrayOf(0.666109, 4.237386),
+                                    arrayOf(0.583888, 3.913749),
+                                    arrayOf(0.085031, 3.228990),
+                                    arrayOf(0.687006, 4.286286),
+                                    arrayOf(0.949655, 4.628614),
+                                    arrayOf(0.189912, 3.239536),
+                                    arrayOf(0.844027, 4.457997),
+                                    arrayOf(0.333288, 3.513384),
+                                    arrayOf(0.427035, 3.729674),
+                                    arrayOf(0.466369, 3.834274),
+                                    arrayOf(0.550659, 3.811155),
+                                    arrayOf(0.278213, 3.598316),
+                                    arrayOf(0.918769, 4.692514),
+                                    arrayOf(0.886555, 4.604859),
+                                    arrayOf(0.569488, 3.864912),
+                                    arrayOf(0.066379, 3.184236),
+                                    arrayOf(0.335751, 3.500796),
+                                    arrayOf(0.426863, 3.743365),
+                                    arrayOf(0.395746, 3.622905),
+                                    arrayOf(0.694221, 4.310796),
+                                    arrayOf(0.272760, 3.583357),
+                                    arrayOf(0.503495, 3.901852),
+                                    arrayOf(0.067119, 3.233521),
+                                    arrayOf(0.038326, 3.105266),
+                                    arrayOf(0.599122, 3.865544),
+                                    arrayOf(0.947054, 4.628625),
+                                    arrayOf(0.671279, 4.231213),
+                                    arrayOf(0.434811, 3.791149),
+                                    arrayOf(0.509381, 3.968271),
+                                    arrayOf(0.749442, 4.253910),
+                                    arrayOf(0.058014, 3.194710),
+                                    arrayOf(0.482978, 3.996503),
+                                    arrayOf(0.466776, 3.904358),
+                                    arrayOf(0.357767, 3.503976),
+                                    arrayOf(0.949123, 4.557545),
+                                    arrayOf(0.417320, 3.699876),
+                                    arrayOf(0.920461, 4.613614),
+                                    arrayOf(0.156433, 3.140401),
+                                    arrayOf(0.656662, 4.206717),
+                                    arrayOf(0.616418, 3.969524),
+                                    arrayOf(0.853428, 4.476096),
+                                    arrayOf(0.133295, 3.136528),
+                                    arrayOf(0.693007, 4.279071),
+                                    arrayOf(0.178449, 3.200603),
+                                    arrayOf(0.199526, 3.299012),
+                                    arrayOf(0.073224, 3.209873),
+                                    arrayOf(0.286515, 3.632942),
+                                    arrayOf(0.182026, 3.248361),
+                                    arrayOf(0.621523, 3.995783),
+                                    arrayOf(0.344584, 3.563262),
+                                    arrayOf(0.398556, 3.649712),
+                                    arrayOf(0.480369, 3.951845),
+                                    arrayOf(0.153350, 3.145031),
+                                    arrayOf(0.171846, 3.181577),
+                                    arrayOf(0.867082, 4.637087),
+                                    arrayOf(0.223855, 3.404964),
+                                    arrayOf(0.528301, 3.873188),
+                                    arrayOf(0.890192, 4.633648),
+                                    arrayOf(0.106352, 3.154768),
+                                    arrayOf(0.917886, 4.623637),
+                                    arrayOf(0.014855, 3.078132),
+                                    arrayOf(0.567682, 3.913596),
+                                    arrayOf(0.068854, 3.221817),
+                                    arrayOf(0.603535, 3.938071),
+                                    arrayOf(0.532050, 3.880822),
+                                    arrayOf(0.651362, 4.176436),
+                                    arrayOf(0.901225, 4.648161),
+                                    arrayOf(0.204337, 3.332312),
+                                    arrayOf(0.696081, 4.240614),
+                                    arrayOf(0.963924, 4.532224),
+                                    arrayOf(0.981390, 4.557105),
+                                    arrayOf(0.987911, 4.610072),
+                                    arrayOf(0.990947, 4.636569),
+                                    arrayOf(0.736021, 4.229813),
+                                    arrayOf(0.253574, 3.500860),
+                                    arrayOf(0.674722, 4.245514),
+                                    arrayOf(0.939368, 4.605182),
+                                    arrayOf(0.235419, 3.454340),
+                                    arrayOf(0.110521, 3.180775),
+                                    arrayOf(0.218023, 3.380820),
+                                    arrayOf(0.869778, 4.565020),
+                                    arrayOf(0.196830, 3.279973),
+                                    arrayOf(0.958178, 4.554241),
+                                    arrayOf(0.972673, 4.633520),
+                                    arrayOf(0.745797, 4.281037),
+                                    arrayOf(0.445674, 3.844426),
+                                    arrayOf(0.470557, 3.891601),
+                                    arrayOf(0.549236, 3.849728),
+                                    arrayOf(0.335691, 3.492215),
+                                    arrayOf(0.884739, 4.592374),
+                                    arrayOf(0.918916, 4.632025),
+                                    arrayOf(0.441815, 3.756750),
+                                    arrayOf(0.116598, 3.133555),
+                                    arrayOf(0.359274, 3.567919),
+                                    arrayOf(0.814811, 4.363382),
+                                    arrayOf(0.387125, 3.560165),
+                                    arrayOf(0.982243, 4.564305),
+                                    arrayOf(0.780880, 4.215055),
+                                    arrayOf(0.652565, 4.174999),
+                                    arrayOf(0.870030, 4.586640),
+                                    arrayOf(0.604755, 3.960008),
+                                    arrayOf(0.255212, 3.529963),
+                                    arrayOf(0.730546, 4.213412),
+                                    arrayOf(0.493829, 3.908685),
+                                    arrayOf(0.257017, 3.585821),
+                                    arrayOf(0.833735, 4.374394),
+                                    arrayOf(0.070095, 3.213817),
+                                    arrayOf(0.527070, 3.952681),
+                                    arrayOf(0.116163, 3.129283)
+                                )
+                            )
+                            .color("#0088FF"),
+                        AASeriesElement()
+                            .name("线性回归线")
+                            .type(AAChartType.Line)
+                            .data(
+                                arrayOf(
+                                    arrayOf(0.014, 3.078),
+                                    arrayOf(0.969, 4.655)
+                                )
+                            )
+                            .color("#FF0000")
+                    )
+                )
+        }
+
+
+        internal fun negativeColorMixedBubble(): AAChartModel {
+            return AAChartModel()
+                .categories(
+                    arrayOf(
+                        "Saturday",
+                        "Friday",
+                        "Thursday",
+                        "Wednesday",
+                        "Tuesday",
+                        "Monday",
+                        "Sunday"
+                    )
+                )
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Bubble")
+                            .type(AAChartType.Bubble)
+                            .data(
+                                arrayOf(
+                                    arrayOf(0, 0, 5),
+                                    arrayOf(0, 1, 1),
+                                    arrayOf(0, 2, 0),
+                                    arrayOf(0, 3, 0),
+                                    arrayOf(0, 4, 0),
+                                    arrayOf(0, 5, 0),
+                                    arrayOf(0, 6, 0),
+                                    arrayOf(0, 7, 0),
+                                    arrayOf(0, 8, 0),
+                                    arrayOf(0, 9, 0),
+                                    arrayOf(0, 10, 0),
+                                    arrayOf(0, 11, 2),
+                                    arrayOf(0, 12, 4),
+                                    arrayOf(0, 13, 1),
+                                    arrayOf(0, 14, 1),
+                                    arrayOf(0, 15, 3),
+                                    arrayOf(0, 16, 4),
+                                    arrayOf(0, 17, 6),
+                                    arrayOf(0, 18, 4),
+                                    arrayOf(0, 19, 4),
+                                    arrayOf(0, 20, 3),
+                                    arrayOf(0, 21, 3),
+                                    arrayOf(0, 22, 2),
+                                    arrayOf(0, 23, 5),
+                                    arrayOf(1, 0, 7),
+                                    arrayOf(1, 1, 0),
+                                    arrayOf(1, 2, 0),
+                                    arrayOf(1, 3, 0),
+                                    arrayOf(1, 4, 0),
+                                    arrayOf(1, 5, 0),
+                                    arrayOf(1, 6, 0),
+                                    arrayOf(1, 7, 0),
+                                    arrayOf(1, 8, 0),
+                                    arrayOf(1, 9, 0),
+                                    arrayOf(1, 10, 5),
+                                    arrayOf(1, 11, 2),
+                                    arrayOf(1, 12, 2),
+                                    arrayOf(1, 13, 6),
+                                    arrayOf(1, 14, 9),
+                                    arrayOf(1, 15, 11),
+                                    arrayOf(1, 16, 6),
+                                    arrayOf(1, 17, 7),
+                                    arrayOf(1, 18, 8),
+                                    arrayOf(1, 19, 12),
+                                    arrayOf(1, 20, 5),
+                                    arrayOf(1, 21, 5),
+                                    arrayOf(1, 22, 7),
+                                    arrayOf(1, 23, 2),
+                                    arrayOf(2, 0, 1),
+                                    arrayOf(2, 1, 1),
+                                    arrayOf(2, 2, 0),
+                                    arrayOf(2, 3, 0),
+                                    arrayOf(2, 4, 0),
+                                    arrayOf(2, 5, 0),
+                                    arrayOf(2, 6, 0),
+                                    arrayOf(2, 7, 0),
+                                    arrayOf(2, 8, 0),
+                                    arrayOf(2, 9, 0),
+                                    arrayOf(2, 10, 3),
+                                    arrayOf(2, 11, 2),
+                                    arrayOf(2, 12, 1),
+                                    arrayOf(2, 13, 9),
+                                    arrayOf(2, 14, 8),
+                                    arrayOf(2, 15, 10),
+                                    arrayOf(2, 16, 6),
+                                    arrayOf(2, 17, 5),
+                                    arrayOf(2, 18, 5),
+                                    arrayOf(2, 19, 5),
+                                    arrayOf(2, 20, 7),
+                                    arrayOf(2, 21, 4),
+                                    arrayOf(2, 22, 2),
+                                    arrayOf(2, 23, 4),
+                                    arrayOf(3, 0, 7),
+                                    arrayOf(3, 1, 3),
+                                    arrayOf(3, 2, 0),
+                                    arrayOf(3, 3, 0),
+                                    arrayOf(3, 4, 0),
+                                    arrayOf(3, 5, 0),
+                                    arrayOf(3, 6, 0),
+                                    arrayOf(3, 7, 0),
+                                    arrayOf(3, 8, 1),
+                                    arrayOf(3, 9, 0),
+                                    arrayOf(3, 10, 5),
+                                    arrayOf(3, 11, 4),
+                                    arrayOf(3, 12, 7),
+                                    arrayOf(3, 13, 14),
+                                    arrayOf(3, 14, 13),
+                                    arrayOf(3, 15, 12),
+                                    arrayOf(3, 16, 9),
+                                    arrayOf(3, 17, 5),
+                                    arrayOf(3, 18, 5),
+                                    arrayOf(3, 19, 10),
+                                    arrayOf(3, 20, 6),
+                                    arrayOf(3, 21, 4),
+                                    arrayOf(3, 22, 4),
+                                    arrayOf(3, 23, 1),
+                                    arrayOf(4, 0, 1),
+                                    arrayOf(4, 1, 3),
+                                    arrayOf(4, 2, 0),
+                                    arrayOf(4, 3, 0),
+                                    arrayOf(4, 4, 0),
+                                    arrayOf(4, 5, 1),
+                                    arrayOf(4, 6, 0),
+                                    arrayOf(4, 7, 0),
+                                    arrayOf(4, 8, 0),
+                                    arrayOf(4, 9, 2),
+                                    arrayOf(4, 10, 4),
+                                    arrayOf(4, 11, 4),
+                                    arrayOf(4, 12, 2),
+                                    arrayOf(4, 13, 4),
+                                    arrayOf(4, 14, 4),
+                                    arrayOf(4, 15, 14),
+                                    arrayOf(4, 16, 12),
+                                    arrayOf(4, 17, 1),
+                                    arrayOf(4, 18, 8),
+                                    arrayOf(4, 19, 5),
+                                    arrayOf(4, 20, 3),
+                                    arrayOf(4, 21, 7),
+                                    arrayOf(4, 22, 3),
+                                    arrayOf(4, 23, 0),
+                                    arrayOf(5, 0, 2),
+                                    arrayOf(5, 1, 1),
+                                    arrayOf(5, 2, 0),
+                                    arrayOf(5, 3, 3),
+                                    arrayOf(5, 4, 0),
+                                    arrayOf(5, 5, 0),
+                                    arrayOf(5, 6, 0),
+                                    arrayOf(5, 7, 0),
+                                    arrayOf(5, 8, 2),
+                                    arrayOf(5, 9, 0),
+                                    arrayOf(5, 10, 4),
+                                    arrayOf(5, 11, 1),
+                                    arrayOf(5, 12, 5),
+                                    arrayOf(5, 13, 10),
+                                    arrayOf(5, 14, 5),
+                                    arrayOf(5, 15, 7),
+                                    arrayOf(5, 16, 11),
+                                    arrayOf(5, 17, 6),
+                                    arrayOf(5, 18, 0),
+                                    arrayOf(5, 19, 5),
+                                    arrayOf(5, 20, 3),
+                                    arrayOf(5, 21, 4),
+                                    arrayOf(5, 22, 2),
+                                    arrayOf(5, 23, 0),
+                                    arrayOf(6, 0, 1),
+                                    arrayOf(6, 1, 0),
+                                    arrayOf(6, 2, 0),
+                                    arrayOf(6, 3, 0),
+                                    arrayOf(6, 4, 0),
+                                    arrayOf(6, 5, 0),
+                                    arrayOf(6, 6, 0),
+                                    arrayOf(6, 7, 0),
+                                    arrayOf(6, 8, 0),
+                                    arrayOf(6, 9, 0),
+                                    arrayOf(6, 10, 1),
+                                    arrayOf(6, 11, 0),
+                                    arrayOf(6, 12, 2),
+                                    arrayOf(6, 13, 1),
+                                    arrayOf(6, 14, 3),
+                                    arrayOf(6, 15, 4),
+                                    arrayOf(6, 16, 0),
+                                    arrayOf(6, 17, 0),
+                                    arrayOf(6, 18, 0),
+                                    arrayOf(6, 19, 0),
+                                    arrayOf(6, 20, 1),
+                                    arrayOf(6, 21, 2),
+                                    arrayOf(6, 22, 2),
+                                    arrayOf(6, 23, 6)
+                                )
+                            )
+                            .color("#0088FF")
+                            .negativeColor("#FF0000")
+                            .threshold(4f)//default:0
+                    )
+                )
+        }
+
+        internal fun polygonMixedScatter(): AAChartModel {
+            return AAChartModel()
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("目标")
+                            .type(AAChartType.Polygon)
+                            .data(
+                                arrayOf(
+                                    arrayOf(153, 42),
+                                    arrayOf(149, 46),
+                                    arrayOf(149, 55),
+                                    arrayOf(152, 60),
+                                    arrayOf(159, 70),
+                                    arrayOf(170, 77),
+                                    arrayOf(180, 70),
+                                    arrayOf(180, 60),
+                                    arrayOf(173, 52),
+                                    arrayOf(166, 45)
+                                )
+                            ),
+                        AASeriesElement()
+                            .name("实际值")
+                            .type(AAChartType.Scatter)
+                            .data(
+                                arrayOf(
+                                    arrayOf(161.2, 51.6),
+                                    arrayOf(167.5, 59.0),
+                                    arrayOf(159.5, 49.2),
+                                    arrayOf(157.0, 63.0),
+                                    arrayOf(155.8, 53.6),
+                                    arrayOf(170.0, 59.0),
+                                    arrayOf(159.1, 47.6),
+                                    arrayOf(166.0, 69.8),
+                                    arrayOf(176.2, 66.8),
+                                    arrayOf(160.2, 75.2),
+                                    arrayOf(172.5, 55.2),
+                                    arrayOf(170.9, 54.2),
+                                    arrayOf(172.9, 62.5),
+                                    arrayOf(153.4, 42.0),
+                                    arrayOf(160.0, 50.0),
+                                    arrayOf(147.2, 49.8),
+                                    arrayOf(168.2, 49.2),
+                                    arrayOf(175.0, 73.2),
+                                    arrayOf(157.0, 47.8),
+                                    arrayOf(167.6, 68.8),
+                                    arrayOf(159.5, 50.6),
+                                    arrayOf(175.0, 82.5),
+                                    arrayOf(166.8, 57.2),
+                                    arrayOf(176.5, 87.8),
+                                    arrayOf(170.2, 72.8),
+                                    arrayOf(174.0, 54.5),
+                                    arrayOf(173.0, 59.8),
+                                    arrayOf(179.9, 67.3),
+                                    arrayOf(170.5, 67.8),
+                                    arrayOf(160.0, 47.0),
+                                    arrayOf(154.4, 46.2),
+                                    arrayOf(162.0, 55.0),
+                                    arrayOf(176.5, 83.0),
+                                    arrayOf(160.0, 54.4),
+                                    arrayOf(152.0, 45.8),
+                                    arrayOf(162.1, 53.6),
+                                    arrayOf(170.0, 73.2),
+                                    arrayOf(160.2, 52.1),
+                                    arrayOf(161.3, 67.9),
+                                    arrayOf(166.4, 56.6),
+                                    arrayOf(168.9, 62.3),
+                                    arrayOf(163.8, 58.5),
+                                    arrayOf(167.6, 54.5),
+                                    arrayOf(160.0, 50.2),
+                                    arrayOf(161.3, 60.3),
+                                    arrayOf(167.6, 58.3),
+                                    arrayOf(165.1, 56.2),
+                                    arrayOf(160.0, 50.2),
+                                    arrayOf(170.0, 72.9),
+                                    arrayOf(157.5, 59.8),
+                                    arrayOf(167.6, 61.0),
+                                    arrayOf(160.7, 69.1),
+                                    arrayOf(163.2, 55.9),
+                                    arrayOf(152.4, 46.5),
+                                    arrayOf(157.5, 54.3),
+                                    arrayOf(168.3, 54.8),
+                                    arrayOf(180.3, 60.7),
+                                    arrayOf(165.5, 60.0),
+                                    arrayOf(165.0, 62.0),
+                                    arrayOf(164.5, 60.3),
+                                    arrayOf(156.0, 52.7),
+                                    arrayOf(160.0, 74.3),
+                                    arrayOf(163.0, 62.0),
+                                    arrayOf(165.7, 73.1),
+                                    arrayOf(161.0, 80.0),
+                                    arrayOf(162.0, 54.7),
+                                    arrayOf(166.0, 53.2),
+                                    arrayOf(174.0, 75.7),
+                                    arrayOf(172.7, 61.1),
+                                    arrayOf(167.6, 55.7),
+                                    arrayOf(151.1, 48.7),
+                                    arrayOf(164.5, 52.3),
+                                    arrayOf(163.5, 50.0),
+                                    arrayOf(152.0, 59.3),
+                                    arrayOf(169.0, 62.5),
+                                    arrayOf(164.0, 55.7),
+                                    arrayOf(161.2, 54.8),
+                                    arrayOf(155.0, 45.9),
+                                    arrayOf(170.0, 70.6),
+                                    arrayOf(176.2, 67.2),
+                                    arrayOf(170.0, 69.4),
+                                    arrayOf(162.5, 58.2),
+                                    arrayOf(170.3, 64.8),
+                                    arrayOf(164.1, 71.6),
+                                    arrayOf(169.5, 52.8),
+                                    arrayOf(163.2, 59.8),
+                                    arrayOf(154.5, 49.0),
+                                    arrayOf(159.8, 50.0),
+                                    arrayOf(173.2, 69.2),
+                                    arrayOf(170.0, 55.9),
+                                    arrayOf(161.4, 63.4),
+                                    arrayOf(169.0, 58.2),
+                                    arrayOf(166.2, 58.6),
+                                    arrayOf(159.4, 45.7),
+                                    arrayOf(162.5, 52.2),
+                                    arrayOf(159.0, 48.6),
+                                    arrayOf(162.8, 57.8),
+                                    arrayOf(159.0, 55.6),
+                                    arrayOf(179.8, 66.8),
+                                    arrayOf(162.9, 59.4),
+                                    arrayOf(161.0, 53.6),
+                                    arrayOf(151.1, 73.2),
+                                    arrayOf(168.2, 53.4),
+                                    arrayOf(168.9, 69.0),
+                                    arrayOf(173.2, 58.4),
+                                    arrayOf(171.8, 56.2),
+                                    arrayOf(178.0, 70.6),
+                                    arrayOf(164.3, 59.8),
+                                    arrayOf(163.0, 72.0),
+                                    arrayOf(168.5, 65.2),
+                                    arrayOf(166.8, 56.6),
+                                    arrayOf(172.7, 105),
+                                    arrayOf(163.5, 51.8),
+                                    arrayOf(169.4, 63.4),
+                                    arrayOf(167.8, 59.0),
+                                    arrayOf(159.5, 47.6),
+                                    arrayOf(167.6, 63.0),
+                                    arrayOf(161.2, 55.2),
+                                    arrayOf(160.0, 45.0),
+                                    arrayOf(163.2, 54.0),
+                                    arrayOf(162.2, 50.2),
+                                    arrayOf(161.3, 60.2),
+                                    arrayOf(149.5, 44.8),
+                                    arrayOf(157.5, 58.8),
+                                    arrayOf(163.2, 56.4),
+                                    arrayOf(172.7, 62.0),
+                                    arrayOf(155.0, 49.2),
+                                    arrayOf(156.5, 67.2),
+                                    arrayOf(164.0, 53.8),
+                                    arrayOf(160.9, 54.4),
+                                    arrayOf(162.8, 58.0),
+                                    arrayOf(167.0, 59.8),
+                                    arrayOf(160.0, 54.8),
+                                    arrayOf(160.0, 43.2),
+                                    arrayOf(168.9, 60.5),
+                                    arrayOf(158.2, 46.4),
+                                    arrayOf(156.0, 64.4),
+                                    arrayOf(160.0, 48.8),
+                                    arrayOf(167.1, 62.2),
+                                    arrayOf(158.0, 55.5),
+                                    arrayOf(167.6, 57.8),
+                                    arrayOf(156.0, 54.6),
+                                    arrayOf(162.1, 59.2),
+                                    arrayOf(173.4, 52.7),
+                                    arrayOf(159.8, 53.2),
+                                    arrayOf(170.5, 64.5),
+                                    arrayOf(159.2, 51.8),
+                                    arrayOf(157.5, 56.0),
+                                    arrayOf(161.3, 63.6),
+                                    arrayOf(162.6, 63.2),
+                                    arrayOf(160.0, 59.5),
+                                    arrayOf(168.9, 56.8),
+                                    arrayOf(165.1, 64.1),
+                                    arrayOf(162.6, 50.0),
+                                    arrayOf(165.1, 72.3),
+                                    arrayOf(166.4, 55.0),
+                                    arrayOf(160.0, 55.9),
+                                    arrayOf(152.4, 60.4),
+                                    arrayOf(170.2, 69.1),
+                                    arrayOf(162.6, 84.5),
+                                    arrayOf(170.2, 55.9),
+                                    arrayOf(158.8, 55.5),
+                                    arrayOf(172.7, 69.5),
+                                    arrayOf(167.6, 76.4),
+                                    arrayOf(162.6, 61.4),
+                                    arrayOf(167.6, 65.9),
+                                    arrayOf(156.2, 58.6),
+                                    arrayOf(175.2, 66.8),
+                                    arrayOf(172.1, 56.6),
+                                    arrayOf(162.6, 58.6),
+                                    arrayOf(160.0, 55.9),
+                                    arrayOf(165.1, 59.1),
+                                    arrayOf(182.9, 81.8),
+                                    arrayOf(166.4, 70.7),
+                                    arrayOf(165.1, 56.8),
+                                    arrayOf(177.8, 60.0),
+                                    arrayOf(165.1, 58.2),
+                                    arrayOf(175.3, 72.7),
+                                    arrayOf(154.9, 54.1),
+                                    arrayOf(158.8, 49.1),
+                                    arrayOf(172.7, 75.9),
+                                    arrayOf(168.9, 55.0),
+                                    arrayOf(161.3, 57.3),
+                                    arrayOf(167.6, 55.0),
+                                    arrayOf(165.1, 65.5),
+                                    arrayOf(175.3, 65.5),
+                                    arrayOf(157.5, 48.6),
+                                    arrayOf(163.8, 58.6),
+                                    arrayOf(167.6, 63.6),
+                                    arrayOf(165.1, 55.2),
+                                    arrayOf(165.1, 62.7),
+                                    arrayOf(168.9, 56.6),
+                                    arrayOf(162.6, 53.9),
+                                    arrayOf(164.5, 63.2),
+                                    arrayOf(176.5, 73.6),
+                                    arrayOf(168.9, 62.0),
+                                    arrayOf(175.3, 63.6),
+                                    arrayOf(159.4, 53.2),
+                                    arrayOf(160.0, 53.4),
+                                    arrayOf(170.2, 55.0),
+                                    arrayOf(162.6, 70.5),
+                                    arrayOf(167.6, 54.5),
+                                    arrayOf(162.6, 54.5),
+                                    arrayOf(160.7, 55.9),
+                                    arrayOf(160.0, 59.0),
+                                    arrayOf(157.5, 63.6),
+                                    arrayOf(162.6, 54.5),
+                                    arrayOf(152.4, 47.3),
+                                    arrayOf(170.2, 67.7),
+                                    arrayOf(165.1, 80.9),
+                                    arrayOf(172.7, 70.5),
+                                    arrayOf(165.1, 60.9),
+                                    arrayOf(170.2, 63.6),
+                                    arrayOf(170.2, 54.5),
+                                    arrayOf(170.2, 59.1),
+                                    arrayOf(161.3, 70.5),
+                                    arrayOf(167.6, 52.7),
+                                    arrayOf(167.6, 62.7),
+                                    arrayOf(165.1, 86.3),
+                                    arrayOf(162.6, 66.4),
+                                    arrayOf(152.4, 67.3),
+                                    arrayOf(168.9, 63.0),
+                                    arrayOf(170.2, 73.6),
+                                    arrayOf(175.2, 62.3),
+                                    arrayOf(175.2, 57.7),
+                                    arrayOf(160.0, 55.4),
+                                    arrayOf(165.1, 104),
+                                    arrayOf(174.0, 55.5),
+                                    arrayOf(170.2, 77.3),
+                                    arrayOf(160.0, 80.5),
+                                    arrayOf(167.6, 64.5),
+                                    arrayOf(167.6, 72.3),
+                                    arrayOf(167.6, 61.4),
+                                    arrayOf(154.9, 58.2),
+                                    arrayOf(162.6, 81.8),
+                                    arrayOf(175.3, 63.6),
+                                    arrayOf(171.4, 53.4),
+                                    arrayOf(157.5, 54.5),
+                                    arrayOf(165.1, 53.6),
+                                    arrayOf(160.0, 60.0),
+                                    arrayOf(174.0, 73.6),
+                                    arrayOf(162.6, 61.4),
+                                    arrayOf(174.0, 55.5),
+                                    arrayOf(162.6, 63.6),
+                                    arrayOf(161.3, 60.9),
+                                    arrayOf(156.2, 60.0),
+                                    arrayOf(149.9, 46.8),
+                                    arrayOf(169.5, 57.3),
+                                    arrayOf(160.0, 64.1),
+                                    arrayOf(175.3, 63.6),
+                                    arrayOf(169.5, 67.3),
+                                    arrayOf(160.0, 75.5),
+                                    arrayOf(172.7, 68.2),
+                                    arrayOf(162.6, 61.4),
+                                    arrayOf(157.5, 76.8),
+                                    arrayOf(176.5, 71.8),
+                                    arrayOf(164.4, 55.5),
+                                    arrayOf(160.7, 48.6),
+                                    arrayOf(174.0, 66.4),
+                                    arrayOf(163.8, 67.3)
+                                )
+                            )
+                    )
+                )
+
+        }
+
+        fun polarChartMixedChart(): AAChartModel {
+            return AAChartModel()
+                .chartType(AAChartType.Column)
+                .polar(true)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Column")
+                            .type(AAChartType.Column)
+                            .data(arrayOf(8, 7, 6, 5, 4, 3, 2, 1)),
+                        AASeriesElement()
+                            .name("Line")
+                            .type(AAChartType.Line)
+                            .data(arrayOf(1, 2, 3, 4, 5, 6, 7, 8)),
+                        AASeriesElement()
+                            .name("Area")
+                            .type(AAChartType.Area)
+                            .data(arrayOf(1, 8, 2, 7, 3, 6, 4, 5))
+                    )
+                )
+        }
+
+        fun configurePieMixedLineMixedColumnChart(): AAChartModel? {
+            val columnElement1 = AASeriesElement()
+                .name("Anna")
+                .type(AAChartType.Column)
+                .data(arrayOf(3, 2, 1, 3, 4))
+            val columnElement2 = AASeriesElement()
+                .name("Babara")
+                .type(AAChartType.Column)
+                .data(arrayOf(2, 3, 5, 7, 6))
+            val columnElement3 = AASeriesElement()
+                .name("Coco")
+                .type(AAChartType.Column)
+                .data(arrayOf(4, 3, 3, 9, 0))
+            val lineElement = AASeriesElement()
+                .name("average value")
+                .type(AAChartType.Line)
+                .data(arrayOf(3, 2.67, 3, 6.33, 3.33))
+                .marker(
+                    AAMarker()
+                        .fillColor("#1E90FF")
+                        .lineWidth(2.0f)
+                        .lineColor(AAColor.whiteColor())
+                )
+            val pieElement = AAPie()
+                .type(AAChartType.Pie)
+                .center(arrayOf(100, 80))
+                .size(100f)
+                .showInLegend(true)
+                .dataLabels(
+                    AADataLabels()
+                        .enabled(false)
+                )
+                .data(
+                    arrayOf(
+                        AADataElement()
+                            .name("Ada")
+                            .y(13.0f)
+                            .color(AAGradientColor.oceanBlueColor()),
+                        AADataElement()
+                            .name("Bob")
+                            .y(13.0f)
+                            .color(AAGradientColor.sanguineColor()),
+                        AADataElement()
+                            .name("Coco")
+                            .y(13.0f)
+                            .color(AAGradientColor.purpleLakeColor())
+                    )
+                )
+
+            return AAChartModel()
+                .stacking(AAChartStackingType.Normal)
+                .colorsTheme(
+                    arrayOf(
+                        AAGradientColor.oceanBlueColor(),
+                        AAGradientColor.sanguineColor(),
+                        AAGradientColor.purpleLakeColor()
+                    )
+                )
+                .dataLabelsEnabled(false)
+                .series(
+                    arrayOf(
+                        columnElement1,
+                        columnElement2,
+                        columnElement3,
+                        lineElement,
+                        pieElement as AASeriesElement
+                    )
+                )
+        }
+
+
+        //GitHub issue https://github.com/AAChartModel/AAChartKit/issues/921
+        private fun configureNegativeColorMixedAreasplineChart(): AAChartModel? {
+            val blueStopsArr: Array<Any> = arrayOf(
+                arrayOf(0.0, AAColor.rgbaColor(30, 144, 255, 0.0f)),
+                arrayOf(0.5, AAColor.rgbaColor(30, 144, 255, 0.0f)),
+                arrayOf(1.0, AAColor.rgbaColor(30, 144, 255, 0.6f))
+            )
+            val gradientBlueColorDic = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToTop,
+                blueStopsArr
+            )
+
+            val redStopsArr: Array<Any> = arrayOf(
+                arrayOf(0.0, AAColor.rgbaColor(255, 0, 0, 0.6f)),
+                arrayOf(0.5, AAColor.rgbaColor(255, 0, 0, 0.0f)),
+                arrayOf(1.0, AAColor.rgbaColor(255, 0, 0, 0.0f))
+            )
+            val gradientRedColorDic = AAGradientColor.linearGradient(
+                AALinearGradientDirection.ToTop,
+                redStopsArr
+            )
+
+            return AAChartModel()
+                .chartType(AAChartType.Area)
+                .legendEnabled(false)
+                .dataLabelsEnabled(false)
+                .markerRadius(5f)
+                .markerSymbolStyle(AAChartSymbolStyleType.InnerBlank)
+                .yAxisGridLineWidth(0f)
+                .series(
+                    arrayOf(
+                        AASeriesElement()
+                            .name("Column")
+                            .data(
+                                arrayOf(
+                                    7.0,
+                                    6.9,
+                                    2.5,
+                                    14.5,
+                                    18.2,
+                                    21.5,
+                                    5.2,
+                                    26.5,
+                                    23.3,
+                                    45.3,
+                                    13.9,
+                                    9.6,
+                                    -7.0,
+                                    -6.9,
+                                    -2.5,
+                                    -14.5,
+                                    -18.2,
+                                    -21.5,
+                                    -5.2,
+                                    -26.5,
+                                    -23.3,
+                                    -45.3,
+                                    -13.9,
+                                    -9.6
+                                )
+                            )
+                            .lineWidth(5f)
+                            .color(AAColor.rgbaColor(30, 144, 255, 1.0f))
+                            .negativeColor(AAColor.rgbaColor(255, 0, 0, 1.0f))
+                            .fillColor(gradientBlueColorDic)
+                            .negativeFillColor(gradientRedColorDic)
+                            .threshold(0f) //default:0
+                    )
+                )
+        }
+
+
+    }
+}

Some files were not shown because too many files changed in this diff