import Highcharts
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let chartView = HIChartView(frame: view.bounds)
let options = HIOptions()
let chart = HIChart()
chart.type = "column"
options.chart = chart
let title = HITitle()
title.text = "Browser market shares. January, 2018"
options.title = title
let subtitle = HISubtitle()
subtitle.text = "Click the columns to view versions. Source: <a href=\"http://statcounter.com\" target=\"_blank\">statcounter.com</a>"
options.subtitle = subtitle
let accessibility = HIAccessibility()
accessibility.announceNewData = HIAnnounceNewData()
accessibility.announceNewData.enabled = true
options.accessibility = accessibility
let xAxis = HIXAxis()
xAxis.type = "category"
options.xAxis = [xAxis]
let yAxis = HIYAxis()
yAxis.title = HITitle()
yAxis.title.text = "Total percent market share"
options.yAxis = [yAxis]
let legend = HILegend()
legend.enabled = false
options.legend = legend
let plotOptions = HIPlotOptions()
plotOptions.column = HIColumn()
plotOptions.column.borderWidth = 0
let dataLabels = HIDataLabels()
dataLabels.enabled = true
dataLabels.format = "{point.y:.1f}%"
// plotOptions.column.dataLabels = [dataLabels]
options.plotOptions = plotOptions
let tooltip = HITooltip()
tooltip.headerFormat = "<span style=\"font-size:11px\">{series.name}</span><br>"
tooltip.pointFormat = "<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:.2f}%</b> of total<br/>"
options.tooltip = tooltip
let browsers = HIColumn()
browsers.name = "Browsers"
browsers.colorByPoint = true
let chrome = HIData()
chrome.name = "Chrome"
chrome.y = 62.74
chrome.drilldown = "Chrome"
let firefox = HIData()
firefox.name = "Firefox"
firefox.y = 10.57
firefox.drilldown = "Firefox"
let internetExplorer = HIData()
internetExplorer.name = "Internet Explorer"
internetExplorer.y = 7.23
internetExplorer.drilldown = "Internet Explorer"
let safari = HIData()
safari.name = "Safari"
safari.y = 5.58
safari.drilldown = "Safari"
let edge = HIData()
edge.name = "Edge"
edge.y = 4.02
edge.drilldown = "Edge"
let opera = HIData()
opera.name = "Opera"
opera.y = 1.92
opera.drilldown = "Opera"
let other = HIData()
other.name = "Other"
other.y = 7.62
browsers.data = [chrome, firefox, internetExplorer, safari, edge, opera, other]
options.series = [browsers]
let drilldown = HIDrilldown()
let chromeDrilldown = HIColumn()
chromeDrilldown.name = "Chrome"
chromeDrilldown.id = "Chrome"
chromeDrilldown.data = [
[
"v65.0",
0.1
],
[
"v64.0",
1.3
],
[
"v63.0",
53.02
],
[
"v62.0",
1.4
],
[
"v61.0",
0.88
],
[
"v60.0",
0.56
],
[
"v59.0",
0.45
],
[
"v58.0",
0.49
],
[
"v57.0",
0.32
],
[
"v56.0",
0.29
],
[
"v55.0",
0.79
],
[
"v54.0",
0.18
],
[
"v51.0",
0.13
],
[
"v49.0",
2.16
],
[
"v48.0",
0.13
],
[
"v47.0",
0.11
],
[
"v43.0",
0.17
],
[
"v29.0",
0.26
]
] as [Any]
let firefoxDrilldown = HIColumn()
firefoxDrilldown.name = "Firefox"
firefoxDrilldown.id = "Firefox"
firefoxDrilldown.data = [
[
"v58.0",
1.02
],
[
"v57.0",
7.36
],
[
"v56.0",
0.35
],
[
"v55.0",
0.11
],
[
"v54.0",
0.1
],
[
"v52.0",
0.95
],
[
"v51.0",
0.15
],
[
"v50.0",
0.1
],
[
"v48.0",
0.31
],
[
"v47.0",
0.12
]
] as [Any]
let internetExplorerDrilldown = HIColumn()
internetExplorerDrilldown.name = "Internet Explorer"
internetExplorerDrilldown.id = "Internet Explorer"
internetExplorerDrilldown.data = [
[
"v11.0",
6.2
],
[
"v10.0",
0.29
],
[
"v9.0",
0.27
],
[
"v8.0",
0.47
]
] as [Any]
let safariDrilldown = HIColumn()
safariDrilldown.name = "Safari"
safariDrilldown.id = "Safari"
safariDrilldown.data = [
[
"v11.0",
3.39
],
[
"v10.1",
0.96
],
[
"v10.0",
0.36
],
[
"v9.1",
0.54
],
[
"v9.0",
0.13
],
[
"v5.1",
0.2
]
] as [Any]
let edgeDrilldown = HIColumn()
edgeDrilldown.name = "Edge"
edgeDrilldown.id = "Edge"
edgeDrilldown.data = [
[
"v16",
2.6
],
[
"v15",
0.92
],
[
"v14",
0.4
],
[
"v13",
0.1
]
] as [Any]
let operaDrilldown = HIColumn()
operaDrilldown.name = "Opera"
operaDrilldown.id = "Opera"
operaDrilldown.data = [
[
"v50.0",
0.96
],
[
"v49.0",
0.82
],
[
"v12.1",
0.14
]
] as [Any]
drilldown.series = [chromeDrilldown, firefoxDrilldown, internetExplorerDrilldown, safariDrilldown, edgeDrilldown, operaDrilldown]
options.drilldown = drilldown
chartView.options = options
self.view.addSubview(chartView)
}
}
#import <UIKit/UIKit.h>
#import <Highcharts/Highcharts.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
HIChartView *chartView = [[HIChartView alloc] initWithFrame:self.view.bounds];
HIOptions *options = [[HIOptions alloc]init];
HIChart *chart = [[HIChart alloc]init];
chart.type = @"column";
HITitle *title = [[HITitle alloc]init];
title.text = @"Browser market shares. January, 2015 to May, 2015";
HISubtitle *subtitle = [[HISubtitle alloc]init];
subtitle.text = @"Click the columns to view versions. Source: <a href=\"http://netmarketshare.com\">netmarketshare.com</a>.";
HIXAxis *xaxis = [[HIXAxis alloc]init];
xaxis.type = @"category";
HIYAxis *yaxis = [[HIYAxis alloc]init];
yaxis.title = [[HITitle alloc]init];
yaxis.title.text = @"Total percent market share";
HILegend *legend = [[HILegend alloc]init];
legend.enabled = [[NSNumber alloc] initWithBool:false];
HIPlotOptions *plotoptions = [[HIPlotOptions alloc]init];
plotoptions.series = [[HISeries alloc]init];
plotoptions.series.borderWidth = @0;
plotoptions.series.dataLabels = [[HIDataLabels alloc]init];
plotoptions.series.dataLabels.enabled = [[NSNumber alloc] initWithBool:true];
plotoptions.series.dataLabels.format = @"{point.y:.1f}%";
HITooltip *tooltip = [[HITooltip alloc]init];
tooltip.headerFormat = @"<span style=\"font-size:11px\">{series.name}</span><br>";
tooltip.pointFormat = @"<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:.2f}%</b> of total<br/>";
HIColumn *column = [[HIColumn alloc]init];
column.name = @"Brands";
column.colorByPoint = [[NSNumber alloc] initWithBool:true];
column.data = [NSMutableArray arrayWithObjects:@{
@"name": @"Microsoft Internet Explorer",
@"y": @56.33,
@"drilldown": @"Microsoft Internet Explorer"
},
@{
@"name": @"Chrome",
@"y": @24.03,
@"drilldown": @"Chrome"
},
@{
@"name": @"Firefox",
@"y": @10.38,
@"drilldown": @"Firefox"
},
@{
@"name": @"Safari",
@"y": @4.77,
@"drilldown": @"Safari"
},
@{
@"name": @"Opera",
@"y": @0.91,
@"drilldown": @"Opera"
},
@{
@"name": @"Proprietary or Undetectable",
@"y": @0.2,
@"drilldown": [NSNull null]
}
, nil];
HIDrilldown *drilldown = [[HIDrilldown alloc]init];
HIColumn *dcolumn1 = [[HIColumn alloc]init];
dcolumn1.name = @"Microsoft Internet Explorer";
dcolumn1.id = @"Microsoft Internet Explorer";
dcolumn1.data = [NSMutableArray arrayWithObjects:@[
@"v11.0",
@24.13
],
@[
@"v8.0",
@17.2
],
@[
@"v9.0",
@8.11
],
@[
@"v10.0",
@5.33
],
@[
@"v6.0",
@1.06
],
@[
@"v7.0",
@0.5
], nil];
HIColumn *dcolumn2 = [[HIColumn alloc]init];
dcolumn2.name = @"Chrome";
dcolumn2.id = @"Chrome";
dcolumn2.data = [NSMutableArray arrayWithObjects:@[
@"v40.0",
@5
],
@[
@"v41.0",
@4.32
],
@[
@"v42.0",
@3.68
],
@[
@"v39.0",
@2.96
],
@[
@"v36.0",
@2.53
],
@[
@"v43.0",
@1.45
],
@[
@"v31.0",
@1.24
],
@[
@"v35.0",
@0.85
],
@[
@"v38.0",
@0.6
],
@[
@"v32.0",
@0.55
],
@[
@"v37.0",
@0.38
],
@[
@"v33.0",
@0.19
],
@[
@"v34.0",
@0.14
],
@[
@"v30.0",
@0.14
]
, nil];
HIColumn *dcolumn3 = [[HIColumn alloc]init];
dcolumn3.name = @"Firefox";
dcolumn3.id = @"Firefox";
dcolumn3.data = [NSMutableArray arrayWithObjects:@[
@"v35",
@2.76
],
@[
@"v36",
@2.32
],
@[
@"v37",
@2.31
],
@[
@"v34",
@1.27
],
@[
@"v38",
@1.02
],
@[
@"v31",
@0.33
],
@[
@"v33",
@0.22
],
@[
@"v32",
@0.15
], nil];
HIColumn *dcolumn4 = [[HIColumn alloc]init];
dcolumn4.name = @"Safari";
dcolumn4.id = @"Safari";
dcolumn4.data = [NSMutableArray arrayWithObjects:@[
@"v8.0",
@2.56
],
@[
@"v7.1",
@0.77
],
@[
@"v5.1",
@0.42
],
@[
@"v5.0",
@0.3
],
@[
@"v6.1",
@0.29
],
@[
@"v7.0",
@0.26
],
@[
@"v6.2",
@0.17
], nil];
HIColumn *dcolumn5 = [[HIColumn alloc]init];
dcolumn5.name = @"Opera";
dcolumn5.id = @"Opera";
dcolumn5.data = [NSMutableArray arrayWithObjects:@[
@"v12.x",
@0.34
],
@[
@"v28",
@0.24
],
@[
@"v27",
@0.17
],
@[
@"v29",
@0.16
], nil];
drilldown.series = [NSMutableArray arrayWithObjects:dcolumn1, dcolumn2, dcolumn3, dcolumn4, dcolumn5, nil];
options.chart = chart;
options.title = title;
options.subtitle = subtitle;
options.xAxis = [NSMutableArray arrayWithObjects:xaxis, nil];
options.yAxis = [NSMutableArray arrayWithObjects:yaxis, nil];
options.legend = legend;
options.plotOptions = plotoptions;
options.tooltip = tooltip;
options.drilldown = drilldown;
options.series = [NSMutableArray arrayWithObjects: column, nil];
chartView.options = options;
[self.view addSubview:chartView];
}
@end