Last active
October 28, 2023 14:50
-
-
Save cbaragao/66a59b18ceabbf50178e37d20a054d45 to your computer and use it in GitHub Desktop.
DAX Hex Map Example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SVG := | |
// If a color is in the dataset, make it red | |
VAR _selected_color = "#FF0000" | |
// If it is not, make it gray | |
VAR _not_selected_color = "#A5A5A5" | |
//Set up the SVG header | |
VAR _header = "data:image/svg+xml;utf8,<svg width=""1280"" height=""720"" xmlns=""http://www.w3.org/2000/svg"" xmlns:xlink=""http://www.w3.org/1999/xlink"" overflow=""hidden""> | |
<defs> | |
<clipPath id=""clip0""> | |
<rect x=""0"" y=""0"" width=""1280"" height=""720""/> | |
</clipPath> | |
</defs> | |
<g clip-path=""url(#clip0)""> | |
<rect x=""0"" y=""0"" width=""1280"" height=""720"" fill=""#FFFFFF""/>" | |
// Set up the SVG footer | |
VAR _footer = "</g></svg>" | |
// Create a dummy table of states to test with | |
VAR _data = { ( "RI" ), ( "WY" ), ( "AS" ) } | |
// Set up the body as a table. | |
VAR _body = { | |
( "AK", "<path d=""M204.5 64 238 80.75 238 114.25 204.5 131 171 114.25 171 80.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(192.711 104)"">AK</text>" ), | |
( "WA", "<path d=""M311.5 183 345 199.75 345 233.25 311.5 250 278 233.25 278 199.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(296.235 223)"">WA</text>" ), | |
( "MT", "<path d=""M382.5 183 416 199.75 416 233.25 382.5 250 349 233.25 349 199.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(368.441 223)"">MT</text>" ), | |
( "ND", "<path d=""M454 183 488 199.75 488 233.25 454 250 420 233.25 420 199.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(440.464 223)"">ND</text>" ), | |
( "MN", "<path d=""M525.5 183 559 199.75 559 233.25 525.5 250 492 233.25 492 199.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(509.237 223)"">MN</text>" ), | |
( "ID", "<path d=""M347.5 237 381 253.75 381 287.25 347.5 304 314 287.25 314 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(337.901 278)"">ID</text>" ), | |
( "WY", "<path d=""M418.5 237 452 253.75 452 287.25 418.5 304 385 287.25 385 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(403.758 278)"">WY</text>" ), | |
( "SD", "<path d=""M489.5 237 523 253.75 523 287.25 489.5 304 456 287.25 456 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(478.198 278)"">SD</text>" ), | |
( "IA", "<path d=""M561 237 595 253.75 595 287.25 561 304 527 287.25 527 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(552.137 278)"">IA</text>" ), | |
( "IL", "<path d=""M630.5 237 664 253.75 664 287.25 630.5 304 597 287.25 597 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(623.428 278)"">IL</text>" ), | |
( "IN", "<path d=""M701.5 237 735 253.75 735 287.25 701.5 304 668 287.25 668 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(692.284 278)"">IN</text>" ), | |
( "OH", "<path d=""M773.5 237 807 253.75 807 287.25 773.5 304 740 287.25 740 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(759.391 278)"">OH</text>" ), | |
( "PA", "<path d=""M844.5 237 878 253.75 878 287.25 844.5 304 811 287.25 811 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(833.533 278)"">PA</text>" ), | |
( "WI", "<path d=""M597 183 631 199.75 631 233.25 597 250 563 233.25 563 199.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(584.828 223)"">WI</text>" ), | |
( "MI", "<path d=""M738 183 772 199.75 772 233.25 738 250 704 233.25 704 199.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(726.337 223)"">MI</text>" ), | |
( "NJ", "<path d=""M915.5 237 949 253.75 949 287.25 915.5 304 882 287.25 882 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(905.353 278)"">NJ</text>" ), | |
( "CT", "<path d=""M987 237 1021 253.75 1021 287.25 987 304 953 287.25 953 253.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(976.073 278)"">CT</text>" ), | |
( "NY", "<path d=""M880.5 183 914 199.75 914 233.25 880.5 250 847 233.25 847 199.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(868.064 223)"">NY</text>" ), | |
( "MA", "<path d=""M951.5 183 985 199.75 985 233.25 951.5 250 918 233.25 918 199.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(936.169 223)"">MA</text>" ), | |
( "RI", "<path d=""M1022.5 183 1056 199.75 1056 233.25 1022.5 250 989 233.25 989 199.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(1014.19 223)"">RI</text>" ), | |
( "VT", "<path d=""M916.5 128 950 144.75 950 179.25 916.5 196 883 179.25 883 144.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(905.6 169)"">VT</text>" ), | |
( "NH", "<path d=""M988.5 128 1022 144.75 1022 179.25 988.5 196 955 179.25 955 144.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(974.54 169)"">NH</text>" ), | |
( "ME", "<path d=""M1024.5 75 1058 91.75 1058 125.25 1024.5 142 991 125.25 991 91.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(1010.2 116)"">ME</text>" ), | |
( "OR", "<path d=""M311.5 291 345 307.75 345 341.25 311.5 358 278 341.25 278 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(298.501 332)"">OR</text>" ), | |
( "NV", "<path d=""M382.5 291 416 307.75 416 341.25 382.5 358 349 341.25 349 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(369.691 332)"">NV</text>" ), | |
( "CO", "<path d=""M454 291 488 307.75 488 341.25 454 358 420 341.25 420 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(441.307 332)"">CO</text>" ), | |
( "NE", "<path d=""M525.5 291 559 307.75 559 341.25 525.5 358 492 341.25 492 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(513.07 332)"">NE</text>" ), | |
( "MO", "<path d=""M594.5 291 628 307.75 628 341.25 594.5 358 561 341.25 561 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(578.695 332)"">MO</text>" ), | |
( "KY", "<path d=""M666.5 291 700 307.75 700 341.25 666.5 358 633 341.25 633 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(655.384 332)"">KY</text>" ), | |
( "WV", "<path d=""M737.5 291 771 307.75 771 341.25 737.5 358 704 341.25 704 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(721.823 332)"">WV</text>" ), | |
( "MD", "<path d=""M808.5 291 842 307.75 842 341.25 808.5 358 775 341.25 775 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(793.013 332)"">MD</text>" ), | |
( "DE", "<path d=""M880 291 914 307.75 914 341.25 880 358 846 341.25 846 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(868.12 332)"">DE</text>" ), | |
( "CA", "<path d=""M347.5 345 381 361.75 381 395.25 347.5 412 314 395.25 314 361.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(335.318 386)"">CA</text>" ), | |
( "AZ", "<path d=""M418.5 345 452 361.75 452 395.25 418.5 412 385 395.25 385 361.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(407.258 386)"">AZ</text>" ), | |
( "UT", "<path d=""M489.5 345 523 361.75 523 395.25 489.5 412 456 395.25 456 361.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(477.697 386)"">UT</text>" ), | |
( "KS", "<path d=""M561 345 595 361.75 595 395.25 561 412 527 395.25 527 361.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(550.563 386)"">KS</text>" ), | |
( "AR", "<path d=""M630.5 345 664 361.75 664 395.25 630.5 412 597 395.25 597 361.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(618.594 386)"">AR</text>" ), | |
( "TN", "<path d=""M701.5 345 735 361.75 735 395.25 701.5 412 668 395.25 668 361.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(689.784 386)"">TN</text>" ), | |
( "VA", "<path d=""M773.5 345 807 361.75 807 395.25 773.5 412 740 395.25 740 361.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(761.391 386)"">VA</text>" ), | |
( "NC", "<path d=""M844.5 345 878 361.75 878 395.25 844.5 412 811 395.25 811 361.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(831.83 386)"">NC</text>" ), | |
( "NM", "<path d=""M453 399 487 415.75 487 449.25 453 466 419 449.25 419 415.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(436.994 440)"">NM</text>" ), | |
( "OK", "<path d=""M524.5 399 558 415.75 558 449.25 524.5 466 491 449.25 491 415.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(511.6 440)"">OK</text>" ), | |
( "LA", "<path d=""M595.5 399 629 415.75 629 449.25 595.5 466 562 449.25 562 415.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(584.873 440)"">LA</text>" ), | |
( "MS", "<path d=""M666.5 399 700 415.75 700 449.25 666.5 466 633 449.25 633 415.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(652.813 440)"">MS</text>" ), | |
( "AL", "<path d=""M736.5 399 770 415.75 770 449.25 736.5 466 703 449.25 703 415.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(725.77 440)"">AL</text>" ), | |
( "SC", "<path d=""M807.5 399 841 415.75 841 449.25 807.5 466 774 449.25 774 415.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(797.127 440)"">SC</text>" ), | |
( "TX", "<path d=""M489 453 523 469.75 523 503.25 489 520 455 503.25 455 469.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(478.352 494)"">TX</text>" ), | |
( "GA", "<path d=""M773.5 453 807 469.75 807 503.25 773.5 520 740 503.25 740 469.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(760.225 494)"">GA</text>" ), | |
( "FL", "<path d=""M807.5 506 841 522.75 841 556.25 807.5 573 774 556.25 774 522.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(798.294 547)"">FL</text>" ), | |
( "HI", "<path d=""M204.5 506 238 522.75 238 556.25 204.5 573 171 556.25 171 522.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(195.127 547)"">HI</text>" ), | |
( "DC", "<path d=""M951.5 291 985 307.75 985 341.25 951.5 358 918 341.25 918 307.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(938.975 332)"">DC</text>" ), | |
( "PR", "<path d=""M1041.5 506 1075 522.75 1075 556.25 1041.5 573 1008 556.25 1008 522.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(1030.46 547)"">PR</text>" ), | |
( "VI", "<path d=""M1113.5 506 1147 522.75 1147 556.25 1113.5 573 1080 556.25 1080 522.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(1104.93 547)"">VI</text>" ), | |
( "AS", "<path d=""M137.5 619 171 635.75 171 669.25 137.5 686 104 669.25 104 635.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(126.177 659)"">AS</text>" ), | |
( "GU", "<path d=""M64.5 618 98 634.75 98 668.25 64.5 685 31 668.25 31 634.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""20"" transform=""translate(50.8496 659)"">GU</text>" ), | |
( "NMI", "<path d=""M101 565 135 581.75 135 615.25 101 632 67 615.25 67 581.75Z"" fill=""", """ fill-rule=""evenodd""/>", "<text fill=""#FFFFFF"" font-family=""Calibri,Calibri_MSFontService,sans-serif"" font-weight=""400"" font-size=""19"" transform=""translate(84.6439 604)"">NMI</text>" ) | |
} | |
// Add a conditional column that picks the color if the state is listed in the test table | |
VAR _add = | |
ADDCOLUMNS ( | |
_body, | |
"color", IF ( [Value1] IN _data, _selected_color, _not_selected_color ) | |
) | |
// Concat the body table | |
VAR _concat = | |
CONCATENATEX ( _add, [Value2] & [color] & [Value3] & [Value4], " " ) | |
// Concat all header, body, and footer | |
VAR _output = _header & _concat & _footer | |
RETURN | |
_output |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment