Skip to content

This sample demonstrates how to create a data-driven visualization of unique values with an Arcade expression. Arcade is useful for creating visualizations in a FeatureLayer based on a value generated from an expression instead of a field value.

In this sample, a layer whose features represent counties in the U.S. is added to the map. Each feature contains a total count for registered republicans, democrats, and independents in the county. If you wanted to shade each county with a different color depending on the dominant party in the county, you could do so by referencing an additional field indicating the dominant party. In this case, there isn't a field for dominant political party. Arcade allows you to write a simple expression that evaluates to the predominant party. This expression is passed to the valueExpression property of the UniqueValueRenderer. The Legend component shows both the predominant party color and the strength of predominance.

Arcade expression to determine predominant political party
Use dark colors for code blocksCopy
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
    <script type="text/plain" id="winning-party">
      // store field values in variables with
      // meaningful names. Each is the total count
      // of votes for the respective party

      var republican = $feature.MP06025a_B;
      var democrat = $feature.MP06024a_B;
      var independent = $feature.MP06026a_B;
      var parties = [republican, democrat, independent];

      // Match the maximum value with the label
      // of the respective field and return it for
      // use in a UniqueValueRenderer

      return Decode( Max(parties),
        republican, 'republican',
        democrat, 'democrat',
        independent, 'independent',
        'n/a' );
    </script>

You can also optionally pass an arcade expression to a visual variable. In this sample we also pass an expression to an opacity visual variable to indicate which counties are more lopsided in their support for a particular party.

Arcade expression showing strength of predominant political party
Use dark colors for code blocksCopy
80 81 82 83 84 85 86 87 88 89
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
    <script type="text/plain" id="strength">
      var republican = $feature.MP06025a_B;
      var democrat = $feature.MP06024a_B;
      var independent = $feature.MP06026a_B;
      var parties = [republican, democrat, independent];
      var total = Sum(parties);
      var max = Max(parties);

      return (max / total) * 100;
    </script>

The Arcade expressions used in this sample are described in more detail in the Visualization profile of the Arcade expressions guide.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.