Skip to content

word clouds are the wedding font of visualizationยค

how do we make word clouds that aren't toys?

%%

    shell.environment.globals.update(vars(__builtins__))
%%
use the `wordcloud` package to generate a table of word cloud data to visual

    import wordcloud
    cloud = wordcloud.WordCloud()

using the script from george carlin's 1972 <q>the seven words you can never say on television</q>
https://genius.com/George-carlin-the-seven-words-you-can-never-say-on-television-annotated

    cloud.generate_from_text(Path("seven_words.txt").read_text())
<wordcloud.wordcloud.WordCloud at 0x79c1c8ad6050>

use the wordcloud package to generate a table of word cloud data to visual

import wordcloud
cloud = wordcloud.WordCloud()

using the script from george carlin's 1972 the seven words you can never say on television https://genius.com/George-carlin-the-seven-words-you-can-never-say-on-television-annotated

cloud.generate_from_text(Path("seven_words.txt").read_text())
%%
create a structured dataframe from the text

{{df.T.style.to_html()}}

    df = DataFrame(cloud.layout_)
    df = df[0].apply(list).series().rename(columns=dict(zip(df.columns, "word ratio".split()))).combine_first(
        df[df.columns[1:]]
    ).set_index("word").rename(columns={1:"ct", 2: "position", 3: "rotate", 4: "color"})
    df.rotate = df.rotate.replace({2: 90, numpy.nan: 0})
    df = df.combine_first(df.pop("position").apply(list).series().rename(columns={0:"x", 1: "y"}))

<details>
<summary>
handling image rotations in the data
</summary>

{{df.rotate.dropna().value_counts().to_frame("rotations").style.set_caption(
    "frequency of rotations in the parent dataframe"
).to_html()}}

    &gt;&gt;&gt; assert __import__("PIL").Image.ROTATE_90 == 2 

</details>

create a structured dataframe from the text

word word Tits fuck say mean one ha ha think thought people bad list Hey woo hurt Shit piss cunt Okay cocksucker motherfucker really television belong sounds Toots snack going course time said two now way prick finger love important play y'know yeah use certain remember know even Man New understand lot feeling accidental humor long another kill agree sentence take gonna cock crowed balls thank hearing want tell something work passion fluid POP assign stuck careful heal matter pick English language ratio must outrageous separated group large baaad told us intentions cocksucker motherfucker heavy seven that'll infect soul curve spine keep country winning war wow friendly sounding nickname right come meet Yes sexist Nabisco Cheese Corn Pizza Sesame Onion Tater Betcha Eat true usually switch Actually none completely insensitive got heavyweight Besides literal translation emotional busy syllables contend Ks aggressive jump assaualt dig mentioned earlier letter Anglo Saxon go together little reason ago ladies mind P' C' led stupid fuckers tinkle well wanna beginning life yet quite often much wiser rather son watch film making trying great wish knew first step substitute movie cliches grew Sheriff slow maybe next year whole fuckin' ramp N hope never circumstances clinically weave panel Doc Ed
color rgb(129, 211, 77) rgb(200, 224, 32) rgb(39, 127, 142) rgb(197, 224, 33) rgb(142, 214, 69) rgb(64, 69, 136) rgb(213, 226, 26) rgb(46, 179, 124) rgb(39, 126, 142) rgb(210, 226, 27) rgb(38, 130, 142) rgb(51, 99, 141) rgb(40, 174, 128) rgb(108, 205, 90) rgb(74, 193, 109) rgb(37, 133, 142) rgb(42, 176, 127) rgb(205, 225, 29) rgb(38, 130, 142) rgb(194, 223, 35) rgb(71, 19, 101) rgb(42, 176, 127) rgb(253, 231, 37) rgb(64, 70, 136) rgb(41, 122, 142) rgb(72, 33, 115) rgb(205, 225, 29) rgb(160, 218, 57) rgb(34, 167, 133) rgb(50, 101, 142) rgb(99, 203, 95) rgb(70, 48, 126) rgb(31, 161, 135) rgb(33, 144, 141) rgb(122, 209, 81) rgb(39, 128, 142) rgb(37, 132, 142) rgb(41, 123, 142) rgb(42, 119, 142) rgb(36, 134, 142) rgb(31, 152, 139) rgb(76, 194, 108) rgb(71, 13, 96) rgb(63, 72, 137) rgb(57, 86, 140) rgb(62, 73, 137) rgb(37, 172, 130) rgb(88, 199, 101) rgb(129, 211, 77) rgb(35, 137, 142) rgb(70, 51, 127) rgb(246, 230, 32) rgb(70, 50, 126) rgb(53, 183, 121) rgb(37, 133, 142) rgb(33, 142, 141) rgb(37, 172, 130) rgb(33, 144, 141) rgb(41, 175, 127) rgb(108, 205, 90) rgb(42, 118, 142) rgb(62, 73, 137) rgb(66, 64, 134) rgb(78, 195, 107) rgb(70, 10, 93) rgb(192, 223, 37) rgb(42, 118, 142) rgb(178, 221, 45) rgb(69, 55, 129) rgb(149, 216, 64) rgb(50, 182, 122) rgb(122, 209, 81) rgb(37, 132, 142) rgb(103, 204, 92) rgb(49, 104, 142) rgb(39, 173, 129) rgb(99, 203, 95) rgb(149, 216, 64) rgb(139, 214, 70) rgb(71, 13, 96) rgb(38, 130, 142) rgb(105, 205, 91) rgb(49, 104, 142) rgb(192, 223, 37) rgb(72, 40, 120) rgb(33, 143, 141) rgb(103, 204, 92) rgb(70, 7, 90) rgb(246, 230, 32) rgb(218, 227, 25) rgb(59, 82, 139) rgb(157, 217, 59) rgb(51, 99, 141) rgb(132, 212, 75) rgb(144, 215, 67) rgb(96, 202, 96) rgb(32, 146, 140) rgb(56, 89, 140) rgb(58, 84, 140) rgb(72, 22, 104) rgb(52, 97, 141) rgb(74, 193, 109) rgb(59, 82, 139) rgb(49, 181, 123) rgb(35, 169, 131) rgb(31, 148, 140) rgb(33, 166, 133) rgb(70, 48, 126) rgb(64, 189, 114) rgb(72, 32, 113) rgb(72, 32, 113) rgb(236, 229, 27) rgb(41, 121, 142) rgb(47, 107, 142) rgb(72, 26, 108) rgb(47, 180, 124) rgb(56, 88, 140) rgb(71, 19, 101) rgb(31, 149, 139) rgb(53, 95, 141) rgb(200, 224, 32) rgb(40, 174, 128) rgb(69, 56, 130) rgb(46, 111, 142) rgb(41, 122, 142) rgb(223, 227, 24) rgb(70, 8, 92) rgb(66, 63, 133) rgb(115, 208, 86) rgb(66, 190, 113) rgb(65, 66, 135) rgb(72, 20, 103) rgb(117, 208, 84) rgb(139, 214, 70) rgb(47, 180, 124) rgb(155, 217, 60) rgb(31, 160, 136) rgb(39, 127, 142) rgb(82, 197, 105) rgb(56, 88, 140) rgb(46, 179, 124) rgb(53, 95, 141) rgb(48, 105, 142) rgb(59, 82, 139) rgb(33, 142, 141) rgb(253, 231, 37) rgb(70, 48, 126) rgb(184, 222, 41) rgb(31, 149, 139) rgb(49, 181, 123) rgb(80, 196, 106) rgb(45, 113, 142) rgb(38, 173, 129) rgb(52, 182, 121) rgb(44, 115, 142) rgb(31, 159, 136) rgb(71, 47, 125) rgb(78, 195, 107) rgb(34, 141, 141) rgb(57, 86, 140) rgb(70, 10, 93) rgb(62, 73, 137) rgb(66, 63, 133) rgb(149, 216, 64) rgb(181, 222, 43) rgb(70, 7, 90) rgb(241, 229, 29) rgb(38, 130, 142) rgb(60, 79, 138) rgb(41, 122, 142) rgb(72, 41, 121) rgb(58, 84, 140) rgb(34, 139, 141) rgb(65, 66, 135) rgb(38, 130, 142) rgb(71, 13, 96) rgb(31, 154, 138) rgb(31, 148, 140) rgb(189, 223, 38) rgb(74, 193, 109) rgb(53, 183, 121) rgb(134, 213, 73) rgb(129, 211, 77) rgb(53, 183, 121) rgb(50, 182, 122) rgb(129, 211, 77) rgb(31, 148, 140) rgb(71, 45, 123) rgb(37, 131, 142) rgb(58, 83, 139) rgb(82, 197, 105) rgb(69, 5, 89) rgb(88, 199, 101) rgb(63, 71, 136) rgb(30, 157, 137) rgb(48, 105, 142) rgb(33, 143, 141) rgb(72, 28, 110) rgb(68, 2, 86) rgb(103, 204, 92)
ct 109 78 61 57 53 53 36 33 26 26 26 26 26 23 23 23 23 23 23 10 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
ratio 1.000000 0.424242 0.242424 0.212121 0.181818 0.181818 0.181818 0.151515 0.151515 0.151515 0.151515 0.151515 0.151515 0.121212 0.121212 0.121212 0.121212 0.121212 0.121212 0.121212 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.090909 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.060606 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303 0.030303
rotate 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 90.000000 0.000000 0.000000 0.000000 90.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 90.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 90.000000 0.000000 0.000000 0.000000 0.000000 90.000000 90.000000 0.000000 90.000000 0.000000 90.000000
x 5 137 89 139 100 64 1 15 172 1 31 1 89 54 72 159 3 178 41 90 6 129 137 167 116 175 59 147 138 135 89 184 189 126 41 66 116 111 52 47 40 73 130 154 167 59 132 179 129 21 163 174 2 84 32 62 192 186 165 52 68 136 52 137 156 153 119 189 91 181 39 21 143 138 148 164 107 17 107 193 2 51 192 183 61 146 131 59 161 93 2 135 23 145 130 22 21 7 78 92 144 1 1 39 170 106 81 1 14 190 142 69 107 146 42 190 79 174 22 99 78 101 11 13 32 21 124 117 29 167 158 45 130 68 126 162 144 19 144 160 34 100 124 120 91 67 119 44 46 154 70 45 2 194 153 116 170 133 45 148 113 145 187 22 139 147 59 158 53 1 147 194 192 29 26 170 135 109 79 70 113 16 191 1 150 109 129 109 1 2 22 77 182 33 150 97 27 54 122 57
y 77 16 131 245 1 359 37 332 198 213 7 361 300 1 23 339 147 338 254 3 5 155 194 93 269 48 53 64 230 133 188 46 107 328 207 296 321 230 162 383 297 203 35 203 65 304 15 135 100 9 199 13 338 276 57 236 210 17 43 233 32 168 299 93 11 52 218 313 223 99 383 284 1 59 4 133 128 206 369 16 117 47 280 63 167 270 282 184 2 362 61 391 81 96 113 226 383 382 237 164 176 136 262 53 224 200 138 199 383 327 137 234 284 215 237 45 102 101 238 285 15 183 78 3 361 168 365 152 13 4 240 392 71 4 240 176 325 1 345 97 265 165 276 125 283 166 110 163 357 95 341 60 47 199 3 52 135 336 293 17 374 308 149 273 365 198 363 52 331 385 134 312 243 123 383 49 118 320 1 212 125 80 1 173 343 342 131 151 146 309 152 333 1 381 393 92 87 272 180 43
df = DataFrame(cloud.layout_)
df = df[0].apply(list).series().rename(columns=dict(zip(df.columns, "word ratio".split()))).combine_first(
    df[df.columns[1:]]
).set_index("word").rename(columns={1:"ct", 2: "position", 3: "rotate", 4: "color"})
df.rotate = df.rotate.replace({2: 90, numpy.nan: 0})
df = df.combine_first(df.pop("position").apply(list).series().rename(columns={0:"x", 1: "y"}))
handling image rotations in the data
frequency of rotations in the parent dataframe
ย  rotations
rotate ย 
0.000000 170
90.000000 30
    >>> assert __import__("PIL").Image.ROTATE_90 == 2 
%%
create the word cloud

<style>
#cloud {
    --width: 1000px;
    --height: 600px;
    position: relative;
    top: 0;
    left: 0;
    display: block;
    height: var(--height);
    width: var(--width);
    thead {
        display: none; /** should be visuall hidden **/
    }
    tbody {
        transform-style: preserve-3d;
        display: block;
        position: relative;
        top: 0;
        left: 0;
        transform-origin: top left;
        tr {
            top: 0;
            left: 0;
            th, td {
                background: unset;
                display: block;
                position: absolute;
                font-size: calc((var(--r) * (1 - .1) + .1) * 10rem);
                span:not([aria-hidden]) {
                    position: absolute;
                    display: inline-block;
                    transform: 
                        rotate3d(1,1,1,15deg)
                        translateX(calc(var(--x)/var(--x-max)*var(--width)))
                        translateY(calc(var(--y)/var(--y-max)*var(--height)))
                        translateZ(calc(var(--z, 1) * 500px));
                    opacity: var(--z);
                    color: var(--color);
                }
            }
            td {
                display: none;
            }
            th:is(:hover, :focus, :focus-within) ~ td.ct {
                filter: invert(100%);
                display: inline-block;
            }
            th span:not([aria-hidden])::after {
                content: var(--word);
            }
            th > * ~ span:last-of-type::after {
                -webkit-text-stroke: 2px black;
                text-stroke: 2px black;
            }
        }
    }
}
</style>
<table id="cloud" style="--x-min: {{df.x.min()}}; --x-max: {{df.x.max()}};
--y-min: {{df.y.min()}}; --y-max: {{df.y.max()}};">
<thead>
<tr><th scope="col">word</th>{% for x in df.columns %}<th scope="col">{{x}}</th>{% endfor %}</tr>
</thead>
<tbody>{% for i, row in df.head(100)[::-1].iterrows() %}
        <tr style="--x: {{row.x}}; --y: {{row.y}}; --rot: {{row.rotate}}; --r: {{row.ratio}}; --word: '{{i.lower()}}'; --color: {{row.color}};">
<th scope="row">
<span aria-hidden="true">
            {%- for inc in (range(2,row.ct)) -%}
            <span style="--z: {{inc/row.ct}}"></span>
            {%- endfor -%}</span>
<span style="--z: 1;"></span>
</th>
            {%- for k, value in row.items() -%}
            <td class="{{k}}"><br/><span>{{value}}</span></td>
        {%- endfor -%}</tr>{% endfor -%}
    </tbody>
</table>

create the word cloud

wordcolorctratiorotatexy

rgb(72, 22, 104)

5

0.030303030303030304

0.0

92

164

rgb(58, 84, 140)

5

0.030303030303030304

0.0

78

237

rgb(56, 89, 140)

5

0.030303030303030304

0.0

7

382

rgb(32, 146, 140)

5

0.030303030303030304

0.0

21

383

rgb(96, 202, 96)

5

0.030303030303030304

0.0

22

226

rgb(144, 215, 67)

5

0.030303030303030304

0.0

130

113

rgb(132, 212, 75)

5

0.030303030303030304

0.0

145

96

rgb(51, 99, 141)

5

0.030303030303030304

0.0

23

81

rgb(157, 217, 59)

5

0.030303030303030304

90.0

135

391

rgb(59, 82, 139)

5

0.030303030303030304

0.0

2

61

rgb(218, 227, 25)

5

0.030303030303030304

0.0

93

362

rgb(246, 230, 32)

5

0.030303030303030304

0.0

161

2

rgb(70, 7, 90)

5

0.030303030303030304

90.0

59

184

rgb(103, 204, 92)

5

0.030303030303030304

0.0

131

282

rgb(33, 143, 141)

5

0.030303030303030304

0.0

146

270

rgb(72, 40, 120)

5

0.030303030303030304

0.0

61

167

rgb(192, 223, 37)

5

0.030303030303030304

0.0

183

63

rgb(49, 104, 142)

5

0.030303030303030304

0.0

192

280

rgb(105, 205, 91)

5

0.030303030303030304

0.0

51

47

rgb(38, 130, 142)

5

0.030303030303030304

0.0

2

117

rgb(71, 13, 96)

5

0.030303030303030304

0.0

193

16

rgb(139, 214, 70)

5

0.030303030303030304

0.0

107

369

rgb(149, 216, 64)

5

0.030303030303030304

90.0

17

206

rgb(99, 203, 95)

5

0.030303030303030304

0.0

107

128

rgb(39, 173, 129)

5

0.030303030303030304

0.0

164

133

rgb(49, 104, 142)

5

0.030303030303030304

0.0

148

4

rgb(103, 204, 92)

5

0.030303030303030304

0.0

138

59

rgb(37, 132, 142)

5

0.030303030303030304

0.0

143

1

rgb(122, 209, 81)

5

0.030303030303030304

0.0

21

284

rgb(50, 182, 122)

5

0.030303030303030304

0.0

39

383

rgb(149, 216, 64)

5

0.030303030303030304

0.0

181

99

rgb(69, 55, 129)

5

0.030303030303030304

0.0

91

223

rgb(178, 221, 45)

5

0.030303030303030304

0.0

189

313

rgb(42, 118, 142)

5

0.030303030303030304

0.0

119

218

rgb(192, 223, 37)

5

0.030303030303030304

0.0

153

52

rgb(70, 10, 93)

5

0.030303030303030304

0.0

156

11

rgb(78, 195, 107)

5

0.030303030303030304

0.0

137

93

rgb(66, 64, 134)

5

0.030303030303030304

0.0

52

299

rgb(62, 73, 137)

7

0.06060606060606061

0.0

136

168

rgb(42, 118, 142)

7

0.06060606060606061

0.0

68

32

rgb(108, 205, 90)

7

0.06060606060606061

0.0

52

233

rgb(41, 175, 127)

7

0.06060606060606061

0.0

165

43

rgb(33, 144, 141)

7

0.06060606060606061

0.0

186

17

rgb(37, 172, 130)

7

0.06060606060606061

0.0

192

210

rgb(33, 142, 141)

7

0.06060606060606061

0.0

62

236

rgb(37, 133, 142)

7

0.06060606060606061

0.0

32

57

rgb(53, 183, 121)

7

0.06060606060606061

90.0

84

276

rgb(70, 50, 126)

7

0.06060606060606061

0.0

2

338

rgb(246, 230, 32)

7

0.06060606060606061

0.0

174

13

rgb(70, 51, 127)

7

0.06060606060606061

0.0

163

199

rgb(35, 137, 142)

7

0.06060606060606061

0.0

21

9

rgb(129, 211, 77)

7

0.06060606060606061

0.0

129

100

rgb(88, 199, 101)

7

0.06060606060606061

0.0

179

135

rgb(37, 172, 130)

7

0.06060606060606061

0.0

132

15

rgb(62, 73, 137)

7

0.06060606060606061

0.0

59

304

rgb(57, 86, 140)

7

0.06060606060606061

0.0

167

65

rgb(63, 72, 137)

7

0.06060606060606061

0.0

154

203

rgb(71, 13, 96)

7

0.06060606060606061

0.0

130

35

rgb(76, 194, 108)

7

0.06060606060606061

90.0

73

203

rgb(31, 152, 139)

7

0.06060606060606061

0.0

40

297

rgb(36, 134, 142)

7

0.06060606060606061

90.0

47

383

rgb(42, 119, 142)

7

0.06060606060606061

0.0

52

162

rgb(41, 123, 142)

7

0.06060606060606061

0.0

111

230

rgb(37, 132, 142)

7

0.06060606060606061

0.0

116

321

rgb(39, 128, 142)

7

0.06060606060606061

0.0

66

296

rgb(122, 209, 81)

9

0.09090909090909091

90.0

41

207

rgb(33, 144, 141)

9

0.09090909090909091

0.0

126

328

rgb(31, 161, 135)

9

0.09090909090909091

0.0

189

107

rgb(70, 48, 126)

9

0.09090909090909091

0.0

184

46

rgb(99, 203, 95)

9

0.09090909090909091

0.0

89

188

rgb(50, 101, 142)

9

0.09090909090909091

0.0

135

133

rgb(34, 167, 133)

9

0.09090909090909091

90.0

138

230

rgb(160, 218, 57)

9

0.09090909090909091

0.0

147

64

rgb(205, 225, 29)

9

0.09090909090909091

0.0

59

53

rgb(72, 33, 115)

9

0.09090909090909091

0.0

175

48

rgb(41, 122, 142)

9

0.09090909090909091

0.0

116

269

rgb(64, 70, 136)

9

0.09090909090909091

0.0

167

93

rgb(253, 231, 37)

9

0.09090909090909091

0.0

137

194

rgb(42, 176, 127)

9

0.09090909090909091

90.0

129

155

rgb(71, 19, 101)

9

0.09090909090909091

0.0

6

5

rgb(194, 223, 35)

10

0.12121212121212122

0.0

90

3

rgb(38, 130, 142)

23

0.12121212121212122

90.0

41

254

rgb(205, 225, 29)

23

0.12121212121212122

0.0

178

338

rgb(42, 176, 127)

23

0.12121212121212122

0.0

3

147

rgb(37, 133, 142)

23

0.12121212121212122

0.0

159

339

rgb(74, 193, 109)

23

0.12121212121212122

0.0

72

23

rgb(108, 205, 90)

23

0.12121212121212122

0.0

54

1

rgb(40, 174, 128)

26

0.15151515151515152

90.0

89

300

rgb(51, 99, 141)

26

0.15151515151515152

90.0

1

361

rgb(38, 130, 142)

26

0.15151515151515152

0.0

31

7

rgb(210, 226, 27)

26

0.15151515151515152

0.0

1

213

rgb(39, 126, 142)

26

0.15151515151515152

0.0

172

198

rgb(46, 179, 124)

33

0.15151515151515152

90.0

15

332

rgb(213, 226, 26)

36

0.18181818181818182

0.0

1

37

rgb(64, 69, 136)

53

0.18181818181818182

90.0

64

359

rgb(142, 214, 69)

53

0.18181818181818182

0.0

100

1

rgb(197, 224, 33)

57

0.21212121212121213

0.0

139

245

rgb(39, 127, 142)

61

0.24242424242424243

0.0

89

131

rgb(200, 224, 32)

78

0.42424242424242425

0.0

137

16

rgb(129, 211, 77)

109

1.0

0.0

5

77