HTMLcopy
1
<div id="container"></div>
CSScopy
8
1
html,
2
body,
3
#container {
4
width: 100%;
5
height: 100%;
6
margin: 0;
7
padding: 0;
8
}
JavaScriptcopy
x
1
anychart.onDocumentReady(function () {
2
// generate data
3
var cardData = [];
4
var biDirData = [];
5
var omniDirData = [];
6
var x;
7
8
for (x = -180; x < 180; x++) {
9
cardData.push([x, -12.6 * (1 - Math.cos((x * 3.14) / 180))]);
10
omniDirData.push([x, -3]);
11
}
12
13
for (x = -180; x < -90; x++) {
14
biDirData.push([x, -26 * (1 + Math.cos((x * 3.14) / 180))]);
15
}
16
17
for (x = -90; x < 90; x++) {
18
biDirData.push([x, -26 * (1 - Math.cos((x * 3.14) / 180))]);
19
}
20
21
for (x = 90; x < 180; x++) {
22
biDirData.push([x, -26 * (1 + Math.cos((x * 3.14) / 180))]);
23
}
24
25
var dataSetCard = anychart.data.set(cardData);
26
var dataSetBi = anychart.data.set(biDirData);
27
var dataSetOmni = anychart.data.set(omniDirData);
28
29
// create polar chart
30
var chart = anychart.polar();
31
32
// set chart yScale settings
33
chart.yScale().ticks().interval(5);
34
chart.yScale().minimum(-25).maximum(0);
35
chart.startAngle(-90);
36
37
// set chart xScale settings
38
chart.xScale().minimum(-180).maximum(180);
39
chart.xScale().ticks().interval(30);
40
41
// set xAxis formatting settings
42
chart
43
.xAxis()
44
.labels()
45
.format(function () {
46
return Math.abs(this.value) + '\xb0';
47
});
48
49
// turn off ticks
50
chart.xAxis().ticks(false);
51
52
// draw y-grid
53
chart.yGrid(true);
54
55
// set chart title
56
chart.title('Microphone Types Polar Patterns');
57
58
// turn legend on
59
chart.legend().enabled(true).position('center-bottom');
60
61
// create series line series
62
var series1 = chart.line(dataSetCard);
63
series1
64
.name('Cardioid (unidirectional)')
65
.stroke({ dash: '5 5 2', thickness: 2 })
66
.legendItem({ iconStroke: { dash: 0 } });
67
68
var series2 = chart.line(dataSetOmni);
69
series2
70
.name('Omnidirectional')
71
.stroke({ dash: '2', thickness: 2 })
72
.legendItem({ iconStroke: { dash: 0 } });
73
74
var series3 = chart.line(dataSetBi);
75
series3.name('Bidirectional').stroke({ thickness: 2 });
76
77
// set container id for the chart
78
chart.container('container');
79
// initiate chart drawing
80
chart.draw();
81
});