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». По умолчанию масштабирование жестами отключено. ## Установка
pod 'AAInfographics', :git => 'https://github.com/AAChartModel/AAChartKit-Swift.git'
pod install
или pod update
.AAInfographics
.AAInfographics
из демо в свой проект.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!)
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]),
])
/*Представление диаграммы вызывает модель диаграммы для окончательного рисования*/
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)
)
Создание уникального стиля всплывающей подсказки. Визуальный эффект показан на рисунке ниже:
Поддержка добавления функций разделения значений.
Более десяти типов диаграмм, поддерживаемых в настоящее время:
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
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )