1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/iOS_wanglu-AAChartKit-Swift

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHINESE-README.md 25 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 10:49 9759987

AAInfographics

AAInfographics — это версия AAChartKit на языке Swift, основанная на популярном открытом фреймворке для создания графиков и диаграмм Highcharts. Это объектно-ориентированный набор инструментов для создания красивых и простых в использовании графиков. Возможно, это самый изысканный сторонний фреймворк для iOS с открытым исходным кодом для построения диаграмм (✟ я клянусь, что не говорю чепуху как атеист ✟).

Особенности

  • Совместимость и дружелюбие. Подходит для iOS 9+ и поддерживает iOS, iPad OS, TV OS и macOS. Поддерживает язык Swift, также есть версии на языках Objective-C (AAChartKit), Java (AAChartCore) и Kotlin (AAChartCore-Kotlin). Конфигурацию проекта легко импортировать. Список всех доступных версий можно найти здесь.

  • Мощные и разнообразные функции. Поддерживаются различные типы диаграмм: столбчатые, линейные, гистограммы, круговые диаграммы, пузырьковые диаграммы и другие. Всего доступно более 20 типов диаграмм.

  • Современный декларативный синтаксис. В отличие от традиционных методов программирования, в AAChartKit вам не нужно беспокоиться о внутренних деталях реализации при создании пользовательских диаграмм. Просто опишите то, что вы хотите получить, и вы получите именно это.

  • Детальные пользовательские функции. Основные элементы, такие как заголовки, оси X и Y, не требуют обсуждения. От интерактивных направляющих линий до всплывающих окон, от цветных линий и полос до деталей линий и маркеров — всё это доступно. Вы можете создавать как минималистичные и свежие дизайны, так и сложные и профессиональные.

  • Интерактивные графические анимации. Диаграммы имеют чёткие и подробные способы взаимодействия с пользователем, а анимация рендеринга графики плавная и красивая. Доступно более 30 видов анимаций рендеринга, которые можно настроить по своему вкусу.

  • Минимализм. Формула AAInfographics проста: «виджет диаграммы + модель диаграммы = нужная вам диаграмма». Она полностью соответствует другой мощной и красивой открытой библиотеке диаграмм AAChartKit.

  • Цепочка программирования. Поддерживается цепочка программирования Masonry, позволяющая настроить экземпляр объекта модели AAChartModel всего в одной строке кода.

  • Простота и лёгкость использования. Для создания всей диаграммы требуется всего пять строк кода (при использовании цепочки программирования для настройки экземпляра объекта AAChartModel).

  • Поддержка событий кликов. Можно отслеживать события взаимодействия пользователя и реализовывать более сложные пользовательские взаимодействия, включая взаимодействие с несколькими таблицами и другими функциями. Подробнее см. в разделе «Поддержка отслеживания событий кликов и одиночных жестов прокрутки».

  • Масштабирование жестами. Поддерживается масштабирование и прокрутка графиков жестами. Типы масштабирования жестами описаны в разделе «Типы масштабирования графиков жестами AAInfographics». По умолчанию масштабирование жестами отключено. ## Установка

Использование CocoaPods (рекомендуется)

  1. Добавьте в файл Podfile:
pod 'AAInfographics', :git => 'https://github.com/AAChartModel/AAChartKit-Swift.git'
  1. В терминале выполните команду pod install или pod update.
  2. Импортируйте заголовочный файл AAInfographics.

Ручная установка

  1. Скачайте демо AAInfographicsDemo.
  2. Перетащите папку с именем AAInfographics из демо в свой проект.

Использование

  1. Создайте представление AAChartView:
CGFloat chartViewWidth  = self.view.frame.size.width
CGFloat chartViewHeight = self.view.frame.size.height
aaChartView = AAChartView()
aaChartView?.frame = CGRect(x:0,y:0,width:chartViewWidth,height:chartViewHeight)
// Устанавливаем высоту содержимого aaChartView (content height)
// aaChartView?.contentHeight = self.view.frame.size.height
self.view.addSubview(aaChartView!)
  1. Настройте модель представления AAChartModel:
  • Настройте свойства объекта модели AAChartModel в стиле цепочечного программирования.
let chartModel = AAChartModel()
            .chartType(.area)//тип диаграммы
            .title("Изменение погоды в городе")//заголовок диаграммы
            .subtitle("18 сентября 2020 года")//подзаголовок диаграммы
            .inverted(false)//перевёрнутая диаграмма
            .yAxisTitle("Градусы Цельсия")//название оси Y
            .legendEnabled(true)//включать ли легенду (подсказки внизу диаграммы)
            .tooltipValueSuffix("Градусы Цельсия")//суффикс для всплывающих подсказок
            .categories(["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь",
                         "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"])
            .colorsTheme(["#fe117c","#ffc069","#06caf4","#7dffc0"])//массив цветов темы
            .series([
                AASeriesElement()
                    .name("Токио")
                    .data([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("Нью-Йорк")
                    .data([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("Берлин")
                    .data([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("Лондон")
                    .data([3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]),
                    ])
  1. Нарисуйте график (после создания экземпляра AAChartView вызовите этот метод для первого рисования):
/*Представление диаграммы вызывает модель диаграммы для окончательного рисования*/
aaChartView?.aa_drawChartWithChartModel(aaChartModel)
``` **Текст запроса на русском языке:**

Настройка всплывающей подсказки AATooltip с помощью HTML-кода.

Использование функции formatter для настройки всплывающих подсказок. Пример кода на Swift:

```swift
let 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(12)
            )

Создание уникального стиля всплывающей подсказки. Визуальный эффект показан на рисунке ниже:

Custom Tooltip Style

Поддержка добавления функций разделения значений.

  • Добавление цветных полос для разделения значений:

plotBandsChart

  • Добавление цветных линий для разделения значений:

plotLinesChart

Более десяти типов диаграмм, поддерживаемых в настоящее время:

enum AAChartType: String {
    case column          = "column"          //столбчатая диаграмма
    case bar             = "bar"             //гистограмма
    case area            = "area"            //линейчатая диаграмма с областями
    case areaspline      = "areaspline"      //криволинейная диаграмма с областями
    case line            = "line"            //график
    case spline          = "spline"          //кусочная кривая
    case scatter         = "scatter"         //диаграмма рассеяния
    case pie             = "pie"             //круговая диаграмма
    case bubble          = "bubble"          //пузырьковая диаграмма
    case pyramid         = "pyramid"         //пирамидальная диаграмма
    case funnel          = "funnel"          //воронкообразная диаграмма
    case columnrange     = "columnrange"     //столбчатая диаграмма диапазонов
    case arearange       = "arearange"       //линейчатая диаграмма диапазонов
    case areasplinerange = "areasplinerange" //криволинейная диаграмма диапазонов
    case boxplot         = "boxplot"         //ящичная диаграмма
    case waterfall       = "waterfall"       //каскадная диаграмма
    case polygon         = "polygon"         //полигональная диаграмма
}

Три типа масштабирования диаграммы:

enum AAChartZoomType: String {
    case none = "none"   //отключить функцию масштабирования (по умолчанию отключено масштабирование)
    case x    = "x"      //поддерживать масштабирование по оси X
    case y    = "y"      //поддерживать вертикальное масштабирование
    case xy   = "xy"     //поддерживать равномерное масштабирование
}

Например, если установить свойство zoomType объекта AAChartModel в значение AAChartZoomType.X, и увеличить диаграмму с помощью жеста, то можно будет перемещать диаграмму влево или вправо, используя двойное нажатие на область AAChartView. В правом верхнем углу экрана появится кнопка «Восстановить масштаб», при нажатии на которую диаграмма вернётся к исходному размеру и положению.

Более тридцати видов анимации диаграммы:

Back Bounce Circ Cubic Elastic
![][1] ![][2] ![][3] ![][4] ![][5]
Expo Quad Quart Quint Sine
![][6] ![][7] ![][8] ![][9] ![][10]

Основные свойства AAChartModel:

Свойство Тип Описание Возможные значения
title String Заголовок диаграммы Любая допустимая строка
subtitle String Подзаголовок диаграммы Любая допустимая строка
chartType AAChartType Тип диаграммы, может быть любым из перечисленных в перечислении AAChartType. Поддерживаются столбчатые диаграммы, гистограммы, линейчатые диаграммы с областями, криволинейные диаграммы с областями и т. д. .column, .bar, .area, .areaSpline, .line, .spline, .pie, .bubble, .scatter, .pyramid, .funnel, .areaRange, .columnRange
stacking AAChartStackingType Определяет, будут ли значения каждого столбца диаграммы складываться друг с другом. По умолчанию используется значение .none, что отключает эффект наложения. Также доступны обычное наложение и наложение в процентах .none, .normal, .percent
symbol AAChartSymbolType Предопределённый стиль соединения точек кривой диаграммы. Может принимать значения «круг», «квадрат», «ромб», «обычный треугольник» и «перевёрнутый треугольник», по умолчанию используется смешанный стиль .circle, .square, .diamond, .triangle, .triangleDown
public var titleFontColor: String? //Цвет шрифта заголовка
public var titleFontSize: Float? //Размер шрифта заголовка
public var titleFontWeight: AAChartFontWeightType? //Начертание шрифта заголовка
public var subtitle: String? //Субтитр
public var subtitleAlign: AAChartAlignType? //Выравнивание субтитра
public вar subtitleFontColor: String? //Цвет шрифта субтитра
public var subtitleFontSize: Float? //Размер шрифта субтитра
public var subtitleFontWeight: AAChartFontWeightType? //Начертание шрифта субтитра
public var axesTextColor: String? //Цвет текста осей X и Y
public var chartType: AAChartType? //Тип диаграммы
public var stacking: AAChartStackingType? //Способ наложения
public var markerSymbol: AAChartSymbolType? //Тип символа маркера: «circle», «square», «diamond», «triangle», «triangle-down», по умолчанию — «circle»
public var markerSymbolStyle: AAChartSymbolStyleType? //Стиль символа маркера
public var zoomType: AAChartZoomType? //Тип масштабирования: AAChartZoomTypeX позволяет масштабировать вдоль оси X
public var inverted: Bool? //Перевёрнута ли ось X (вертикально)
public var xAxisReversed: Bool? //Перевёрнута ли ось X
public вar yAxisReversed: Bool? //Перевёрнута ли ось Y
public var polar: Bool? //Является ли диаграмма полярной (превращается в радарную диаграмму)
public var marginLeft: Float? //Поле слева от диаграммы
public var marginRight: Float? //Поле справа от диаграммы
public var marginBottom: Float? //Поле снизу диаграммы
public var dataLabelsEnabled: Bool? //Отображаются ли метки данных
public var dataLabelsFontColor: String? //Цвет шрифта меток данных
public var dataLabelsFontSize: Float? //Размер шрифта меток данных
public var dataLabelsFontWeight: AAChartFontWeightType?//Начертание шрифта меток данных
public var xAxisLabelsEnabled: Bool? //Отображаются ли подписи оси X
public var categories: [String]? //Категории оси X
public var xAxisGridLineWidth: Float? //Ширина линий сетки оси X
public var xAxisVisible: Bool? //Отображается ли ось X
public var xAxisTickInterval: Int? //Интервал между делениями оси X
public var yAxisVisible: Bool? //Отображается ли ось Y
public var yAxisLabelsEnabled: Bool? //Отображаются ли подписи оси Y
public var yAxisTitle: String? //Заголовок оси Y
public var yAxisLineWidth: Float? //Ширина линии оси Y
public var yAxisMin: Float? //Минимальное значение оси Y
public var yAxisMax: Float? //Максимальное значение оси Y
public var yAxisAllowDecimals: Bool? //Разрешены ли десятичные дроби на оси Y
public var yAxisGridLineWidth: Float? //Ширина линий сетки оси Y
public var tooltipEnabled: Bool? //Отображается ли всплывающая подсказка (по умолчанию отображается)
public var tooltipValueSuffix: String? //Суффикс единиц измерения во всплывающей подсказке
public var tooltipCrosshairs: Bool? //Отображается ли перекрестие (по умолчанию отображается)
public var colorsTheme: [Any]? //Массив цветов темы диаграммы
public var series: [AASeriesElement]? //Массив данных диаграммы
public var legendEnabled: Bool? //Отображается ли легенда
public var backgroundColor: Any? //Цвет фона диаграммы
public var borderRadius: Int? //Радиус скругления верхней части столбчатой или линейчатой диаграммы (можно использовать для настройки формы верхней части, действует только для столбчатых и линейчатых диаграмм)
public var markerRadius: Int? //Длина радиуса точек соединения линий
public var touchEventEnabled: Bool? //Поддерживаются ли сенсорные события ## Исходный код
Язык версии Проект Платформа Ссылка на исходный код
Swift AAInfographics iOS https://github.com/AAChartModel/AAChartKit-Swift
Objective C AAChartKit iOS https://github.com/AAChartModel/AAChartKit
Kotlin AAInfographics Android https://github.com/AAChartModel/AAChartCore-Kotlin
Java AAChartCore Android https://github.com/AAChartModel/AAChartCore

Лицензия

Этот проект AAInfographics использует лицензию MIT, подробности можно найти в файле LICENSE по ссылке: https://github.com/AAChartModel/AAChartKit-Swift/blob/master/LICENSE

Контакты

Список задач

  • Поддержка добавления пользовательских событий после загрузки графика.
  • Поддержка динамического обновления глобального содержимого графика.
  • Поддержка динамического обновления содержимого данных (series) графика.
  • Поддержка эффекта градиента для цветовых слоёв.
  • Поддержка 3D-эффектов для графиков, таких как столбчатые диаграммы, линейные графики, круговые диаграммы, точечные диаграммы и пузырьковые диаграммы.
  • Поддержка горизонтального (полноэкранного) эффекта.
  • Поддержка настройки анимации рендеринга графика.
  • Поддержка пользовательской конфигурации свойств объекта модели AAOptions.
  • Поддержка наложения графиков.
  • Поддержка инвертирования осей координат.
  • Поддержка рендеринга точечных диаграмм.
  • Поддержка рендеринга столбчатых диаграмм с диапазоном.
  • Поддержка рендеринга диаграмм площади с диапазоном.
  • Поддержка рендеринга линейных диаграмм с областями и диапазонами.
  • Поддержка рендеринга полярных карт.
  • Поддержка рендеринга гистограмм с линиями.
  • Поддержка рендеринга заполненных гистограмм с линиями.
  • Поддержка рендеринга древовидных диаграмм с прямоугольниками.
  • Поддержка рендеринга графиков с активными шкалами.
  • Поддержка добавления событий клика к графику.
  • Поддержка динамического обновления чистых данных и прокрутки графика.
  • Поддержка создания изображений из уже отрендеренных графиков.
  • Поддержка сохранения изображений в системный альбом.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/iOS_wanglu-AAChartKit-Swift.git
git@api.gitlife.ru:oschina-mirror/iOS_wanglu-AAChartKit-Swift.git
oschina-mirror
iOS_wanglu-AAChartKit-Swift
iOS_wanglu-AAChartKit-Swift
master