A bubble chart about changes to how people have been spending money after the COVID-19 outbreak (by low-level sectors). This example covers axis transpose and various axis label transformations.

Mobile view
Design specification
{
  "name": "spending-bubble-mobile",
  "layout": {
    "composition": "single",
    "width": 350,
    "height": 945,
    "row": [
      {
        "field": "pct_change",
        "type": "quantitative",
        "scale": {
          "domain": [
            -1,
            1
          ]
        }
      }
    ],
    "column": [
      {
        "field": "ypos",
        "type": "quantitative",
        "scale": {
          "domain": [
            0,
            100
          ]
        },
        "sort": {
          "reverse": true
        }
      }
    ],
    "vaxis": {
      "grid": true,
      "gridColor": "#eeeeee",
      "gridWidth": 1
    }
  },
  "layer": [
    {
      "mark": {
        "type": "circle",
        "size": {
          "field": "total",
          "scale": {
            "range": [
              50,
              5000
            ]
          }
        },
        "color": {
          "field": "negative",
          "scale": {
            "domain": [
              "positive",
              "negative"
            ],
            "range": [
              "#3ea990",
              "#f46230"
            ]
          }
        },
        "stroke": {
          "field": "negative",
          "scale": {
            "domain": [
              "positive",
              "negative"
            ],
            "range": [
              "#26806C",
              "#DB4021"
            ]
          }
        },
        "strokeWidth": {
          "value": 1
        }
      },
      "text": [
        {
          "type": "on-axis",
          "field": "pct_change",
          "values": [
            -1,
            -0.5,
            0,
            0.5,
            1
          ],
          "orient": "left",
          "items": [
            {
              "format": "+.0%",
              "fontSize": 14,
              "color": "#aaaaaa"
            }
          ]
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Gaming"
          ],
          "orient": "middle-left",
          "anchorAlign": "end",
          "dy": 0,
          "items": [
            {
              "color": "$mark",
              "align": "right",
              "fontWeight": 700
            }
          ],
          "tick": false,
          "dx": -5
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Alcohol",
            "Food delivery"
          ],
          "orient": "middle-right",
          "anchorAlign": "start",
          "dy": 0,
          "items": [
            {
              "color": "$mark",
              "align": "left",
              "fontWeight": 700,
              "width": 100
            }
          ],
          "tick": false,
          "dx": 5,
          "width": 100
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Warehouse clubs"
          ],
          "orient": "bottom-right",
          "anchorAlign": "end",
          "dy": 5,
          "items": [
            {
              "color": "$mark",
              "align": "right",
              "fontWeight": 700,
              "width": 100
            }
          ],
          "tick": false,
          "dx": 0,
          "width": 100
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Home improvement"
          ],
          "orient": "top-right",
          "anchorAlign": "end",
          "dy": -35,
          "width": 100,
          "items": [
            {
              "color": "$mark",
              "align": "right",
              "fontWeight": 700,
              "width": 100
            }
          ],
          "tick": false,
          "dx": 0
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Online grocers"
          ],
          "orient": "middle-left",
          "anchorAlign": "end",
          "dy": 0,
          "items": [
            {
              "color": "$mark",
              "align": "right",
              "fontWeight": 700
            }
          ],
          "tick": false,
          "dx": -5
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Meal kits",
            "Lodging"
          ],
          "orient": "middle-right",
          "anchorAlign": "start",
          "dy": 0,
          "items": [
            {
              "color": "$mark",
              "align": "left",
              "fontWeight": 700,
              "width": 100
            }
          ],
          "tick": false,
          "dx": 5,
          "width": 100
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Apparel"
          ],
          "orient": "middle-center",
          "anchorAlign": "middle",
          "dy": 0,
          "items": [
            {
              "color": "white",
              "align": "center",
              "fontWeight": 700,
              "fontStroke": "$mark"
            }
          ],
          "tick": false,
          "dx": 0
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Cruises"
          ],
          "orient": "middle-left",
          "anchorAlign": "end",
          "dy": 0,
          "items": [
            {
              "color": "$mark",
              "align": "right",
              "fontWeight": 700
            }
          ],
          "tick": false,
          "dx": -5
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Airlines"
          ],
          "orient": "middle-center",
          "anchorAlign": "middle",
          "dy": 0,
          "items": [
            {
              "color": "white",
              "align": "center",
              "fontWeight": 700,
              "fontStroke": "$mark"
            }
          ],
          "tick": false,
          "dx": 0
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Charitable giving"
          ],
          "orient": "middle-left",
          "anchorAlign": "end",
          "dy": 0,
          "items": [
            {
              "color": "$mark",
              "align": "right",
              "fontWeight": 700
            }
          ],
          "tick": true,
          "dx": -40
        },
        {
          "type": "on-mark",
          "field": "category",
          "values": [
            "Fast foods",
            "General merchandise and e-commerce",
            "Supermarkets"
          ],
          "orient": "middle-center",
          "anchorAlign": "middle",
          "width": 110,
          "items": [
            {
              "color": "white",
              "align": "center",
              "fontWeight": 700,
              "fontStroke": "$mark"
            }
          ],
          "tick": false
        }
      ]
    }
  ],
  "nondata": {
    "items": [
      {
        "type": "text",
        "name": "text-assist-upward",
        "x": 25,
        "y": 432.5,
        "width": 50,
        "text": [
          {
            "text": "$arrow-up$
More spending",
"align": "right", "fontSize": 13, "lineHeight": 140, "fontColor": "#aaaaaa" } ] }, { "type": "text", "name": "text-assist-downward", "x": 25, "y": 512.5, "width": 50, "anchor": "end", "text": [ { "text": "Less spending
$arrow-down$",
"align": "right", "fontSize": 13, "lineHeight": 140, "fontColor": "#aaaaaa" } ] } ] }, "data": [ { "category": "Activewear", "total": 1986952, "ypos": 50, "text": "Nike, Adidas, Lululemon, North Face and 19 more", "pct_change": -0.39, "negative": "negative" }, { "category": "Airlines", "total": 10911317, "ypos": 57, "text": "American Airlines, Delta Air Lines, United Airlines and five others", "pct_change": -0.91, "negative": "negative" }, { "category": "Alcohol", "total": 598712, "ypos": 50, "text": "BevMo, Vivino, Saucey and two more", "pct_change": 0.25, "negative": "positive" }, { "category": "Apparel", "total": 9911602, "ypos": 30, "text": "Ralph Lauren, Old Navy, Banana Republic and 155 more", "pct_change": -0.67, "negative": "negative" }, { "category": "Arts and crafts", "total": 2105547, "ypos": 75, "text": "Hobby Lobby, Michaels, Blick Art Materials and 10 more", "pct_change": -0.64, "negative": "negative" }, { "category": "Auto parts", "total": 3627206, "ypos": 72, "text": "AutoZone, Advance Auto Parts, O’Reilly Auto Parts and 20 more", "pct_change": -0.33, "negative": "negative" }, { "category": "Auto sales", "total": 2073506, "ypos": 20, "text": "Tesla, Harley-Davidson, CarMax and two more", "pct_change": -0.34, "negative": "negative" }, { "category": "Beauty", "total": 3972562, "ypos": 32, "text": "Sephora, Great Clips, Ulta Beauty and 57 more", "pct_change": -0.52, "negative": "negative" }, { "category": "Book retailers", "total": 545094, "ypos": 41, "text": "Barnes & Noble, Half Price Books, Books-A-Million and two more", "pct_change": -0.68, "negative": "negative" }, { "category": "Cable providers", "total": 9069026, "ypos": 20, "text": "Time Warner Cable, AT&T TV NOW, Cox Communications and 10 more", "pct_change": -0.18, "negative": "negative" }, { "category": "Casual dining", "total": 8693808, "ypos": 40, "text": "Applebee’s, Olive Garden, IHOP and 86 more", "pct_change": -0.72, "negative": "negative" }, { "category": "Charitable giving", "total": 220931, "ypos": 65, "text": "The Salvation Army, St. Jude Medical, World Vision and one more", "pct_change": -0.34, "negative": "negative" }, { "category": "Children", "total": 888562, "ypos": 61, "text": "The Children’s Place, Oshkosh B’Gosh, Gymboree and 19 more", "pct_change": -0.69, "negative": "negative" }, { "category": "Convenience and gas", "total": 9954754, "ypos": 45, "text": "Costco Gasoline, Murphy USA, Casey’s General Stores and 19 more", "pct_change": -0.54, "negative": "negative" }, { "category": "Cruises", "total": 2577886, "ypos": 75, "text": "Carnival, Royal Caribbean, Disney and eight more", "pct_change": -0.86, "negative": "negative" }, { "category": "Food delivery", "total": 3395311, "ypos": 50, "text": "Grubhub, Seamless, DoorDash, Uber Eats and 21 more", "pct_change": 0.49, "negative": "positive" }, { "category": "Discount grocers", "total": 3517484, "ypos": 83, "text": "Aldi, Food 4 Less, FoodMaxx and 14 more", "pct_change": 0.03, "negative": "positive" }, { "category": "Discount stores", "total": 2222210, "ypos": 75, "text": "Dollar General, Dollar Tree, Family Dollar and four more", "pct_change": 0.01, "negative": "positive" }, { "category": "Drug stores", "total": 4206820, "ypos": 33, "text": "Walgreens, Rite Aid and Duane Reade", "pct_change": -0.2, "negative": "negative" }, { "category": "E-Books", "total": 575669, "ypos": 16, "text": "Audible, Kindle and Audiobooks", "pct_change": 0.03, "negative": "positive" }, { "category": "Education resources", "total": 383548, "ypos": 70, "text": "Coursera, Rosetta Stone, Udemy and 24 more", "pct_change": -0.1, "negative": "negative" }, { "category": "Electronics", "total": 8401192, "ypos": 56, "text": "Apple, Best Buy, Hewlett Packard and 15 more", "pct_change": -0.33, "negative": "negative" }, { "category": "Entertainment", "total": 1186509, "ypos": 57, "text": "Bowlmor, Dave & Buster’s, LivingSocial and 15 more", "pct_change": -0.8, "negative": "negative" }, { "category": "Events and attractions", "total": 5243258, "ypos": 70, "text": "Ticketmaster, Six Flags, Topgolf and 44 more", "pct_change": -0.91, "negative": "negative" }, { "category": "Eyewear", "total": 488777, "ypos": 70, "text": "Pearle Vision, Sunglass Hut, Warby Parker and 13 more", "pct_change": -0.8, "negative": "negative" }, { "category": "Fast casual", "total": 5350506, "ypos": 55, "text": "Panera, Sweetgreen, Le Pain Quotidien and 58 others", "pct_change": -0.46, "negative": "negative" }, { "category": "Fast fashion", "total": 933136, "ypos": 52, "text": "Uniqlo, Zara, H&M and 3 more", "pct_change": -0.86, "negative": "negative" }, { "category": "Fine dining", "total": 227201, "ypos": 15, "text": "Ruth’s Chris, Del Frisco’s, Momofuku and nine more", "pct_change": -0.84, "negative": "negative" }, { "category": "Fitness", "total": 4447442, "ypos": 70, "text": "24 Hour Fitness, Y.M.C.A., SoulCycle and 30 more", "pct_change": -0.71, "negative": "negative" }, { "category": "Food hall", "total": 42677, "ypos": 62, "text": "Eataly", "pct_change": -0.72, "negative": "negative" }, { "category": "Footwear", "total": 2880066, "ypos": 56, "text": "Foot Locker, Zappos, Ugg and 53 more", "pct_change": -0.74, "negative": "negative" }, { "category": "Gaming", "total": 1812511, "ypos": 50, "text": "Twitch, Nintendo, Fortnite and 19 more", "pct_change": 0.74, "negative": "positive" }, { "category": "General merchandise and e-commerce", "total": 86820510, "ypos": 60, "text": "Amazon, Walmart, Etsy and 34 more", "pct_change": 0.08, "negative": "positive" }, { "category": "Healthcare", "total": 104448, "ypos": 53, "text": "MDLive, One Medical, MedExpress and 13 more", "pct_change": -0.2, "negative": "negative" }, { "category": "Home beverages", "total": 134218, "ypos": 40, "text": "Nespresso, DAVIDsTEA, Nuun and two more", "pct_change": 0.18, "negative": "positive" }, { "category": "Home furnishings", "total": 6763123, "ypos": 40, "text": "Crate & Barrel, Mattress Firm, West Elm and 68 more", "pct_change": -0.42, "negative": "negative" }, { "category": "Home improvement", "total": 25903933, "ypos": 85, "text": "Home Depot, Lowe’s, Sherwin Williams and 61 more", "pct_change": 0.12, "negative": "positive" }, { "category": "Home security", "total": 1062158, "ypos": 60, "text": "Brinks Home Security, ADT, Simplisafe and seven more", "pct_change": -0.21, "negative": "negative" }, { "category": "Insurance", "total": 13169325, "ypos": 76, "text": "UnitedHealth, Geico, Aetna and 20 more", "pct_change": -0.16, "negative": "negative" }, { "category": "Internet services", "total": 3429269, "ypos": 50, "text": "Dropbox, Zoom, Adobe and 67 more", "pct_change": -0.02, "negative": "negative" }, { "category": "Intimate apparel", "total": 647019, "ypos": 45, "text": "Victoria’s Secret, ThirdLove, Maidenform and 11 more", "pct_change": -0.65, "negative": "negative" }, { "category": "Jewelry and watches", "total": 752939, "ypos": 20, "text": "Kay Jewelers, Shinola, Cartier and 32 more", "pct_change": -0.75, "negative": "negative" }, { "category": "Lab testing", "total": 76852, "ypos": 30, "text": "Covance and LabCorp", "pct_change": -0.16, "negative": "negative" }, { "category": "Lodging", "total": 8525446, "ypos": 25, "text": "Marriott, Hilton, Hyatt and 95 more", "pct_change": -0.87, "negative": "negative" }, { "category": "Luxury department stores", "total": 3159456, "ypos": 62, "text": "Neiman Marcus, Saks Fifth Avenue, Bloomingdale’s and five others", "pct_change": -0.4, "negative": "negative" }, { "category": "Mass transit", "total": 1533588, "ypos": 62, "text": "Amtrak, Metro-North, Megabus and four others", "pct_change": -0.96, "negative": "negative" }, { "category": "Meal kits", "total": 776390, "ypos": 52, "text": "Blue Apron, HelloFresh, Home Chef and 12 others", "pct_change": 0.34, "negative": "positive" }, { "category": "Mid-tier department stores", "total": 7686600, "ypos": 38, "text": "Macy’s J.C. Penney, Century 21 and 16 more", "pct_change": -0.59, "negative": "negative" }, { "category": "Mobile", "total": 36517925, "ypos": 57, "text": "AT&T, Verizon, T-Mobile and 14 more", "pct_change": -0.14, "negative": "negative" }, { "category": "Movie theaters", "total": 1766969, "ypos": 40, "text": "AMC, Regal Cinemas, Cinemark and eight more", "pct_change": -0.98, "negative": "negative" }, { "category": "Music", "total": 266445, "ypos": 60, "text": "Guitar Center, Musician’s Friend, Music & Arts and two more", "pct_change": -0.63, "negative": "negative" }, { "category": "Music streaming", "total": 4127854, "ypos": 60, "text": "Spotify, Google Play, SiriusXM and five more", "pct_change": 0.19, "negative": "positive" }, { "category": "News media", "total": 277569, "ypos": 41, "text": "The New York Times, The Wall Street Journal, The Economist and eight more", "pct_change": 0.08, "negative": "positive" }, { "category": "Occasion and gifts", "total": 884291, "ypos": 25, "text": "1-800-Flowers, Yankee Candle, Party City and 27 more", "pct_change": -0.58, "negative": "negative" }, { "category": "Off-price department stores", "total": 5831079, "ypos": 45, "text": "T.J. Maxx, Marshalls, Burlington Stores and eight more", "pct_change": -0.89, "negative": "negative" }, { "category": "Office supplies", "total": 841325, "ypos": 48, "text": "Office Depot, Staples, Officemax and one more", "pct_change": 0.18, "negative": "positive" }, { "category": "Online grocers", "total": 4831393, "ypos": 50, "text": "Instacart, FreshDirect, Walmart online grocery and 16 more", "pct_change": 0.8, "negative": "positive" }, { "category": "Online travel agency", "total": 5645724, "ypos": 30, "text": "Expedia, Airbnb, Priceline.com and 13 more", "pct_change": -0.8, "negative": "negative" }, { "category": "Parking", "total": 54506, "ypos": 38, "text": "Park ’N Fly, Parkmobile, Preflight Airport Parking and one more", "pct_change": -0.92, "negative": "negative" }, { "category": "Personal care and nutrition", "total": 3163452, "ypos": 73, "text": "GNC, Weight Watchers, Massage Envy and 54 more", "pct_change": -0.39, "negative": "negative" }, { "category": "Pets", "total": 3882692, "ypos": 86, "text": "PetSmart, Chewy, Petco and 13 more", "pct_change": -0.1, "negative": "negative" }, { "category": "Pharmacies", "total": 3456757, "ypos": 41, "text": "CVS, Express Scripts, PillPack and seven more", "pct_change": -0.18, "negative": "negative" }, { "category": "Plus size", "total": 302789, "ypos": 80, "text": "Lane Bryant, Casual Male XL, Catherines and 12 more", "pct_change": -0.77, "negative": "negative" }, { "category": "Fast foods", "total": 21554623, "ypos": 40, "text": "McDonald’s, Taco Bell, Domino’s Pizza and 102 more", "pct_change": -0.34, "negative": "negative" }, { "category": "Rental cars", "total": 2668810, "ypos": 52, "text": "Avis, Hertz, Enterprise and 11 more", "pct_change": -0.7, "negative": "negative" }, { "category": "Ride share", "total": 2965580, "ypos": 63, "text": "Uber, Lyft, Via and three more", "pct_change": -0.86, "negative": "negative" }, { "category": "Scooter share", "total": 27060, "ypos": 53, "text": "Bird, Lime and Uber bike share", "pct_change": -0.98, "negative": "negative" }, { "category": "Shipping", "total": 256669, "ypos": 25, "text": "FedEx, Shipstation and four more", "pct_change": -0.37, "negative": "negative" }, { "category": "Snacks", "total": 38993, "ypos": 45, "text": "Mrs. Fields’, TCBY, IT’SUGAR and five more", "pct_change": -0.8, "negative": "negative" }, { "category": "Social media", "total": 141246, "ypos": 40, "text": "Tinder, LinkedIn, Match.com and 13 more", "pct_change": -0.06, "negative": "negative" }, { "category": "Specialty", "total": 1052875, "ypos": 48, "text": "WeWork, WW Grainger, College Board and seven more", "pct_change": -0.19, "negative": "negative" }, { "category": "Specialty apparel", "total": 458479, "ypos": 25, "text": "David’s Bridal, Canada Goose, Scrubs and 16 more", "pct_change": -0.72, "negative": "negative" }, { "category": "Sporting goods", "total": 4009611, "ypos": 60, "text": "Dick’s Sporting Goods, Bass Pro Shops, REI and 18 more", "pct_change": -0.53, "negative": "negative" }, { "category": "Storage", "total": 1137833, "ypos": 65, "text": "Cubesmart, Public Storage, Extra Space Storage and four more", "pct_change": -0.6, "negative": "negative" }, { "category": "Supermarkets", "total": 62250525, "ypos": 32, "text": "Kroger, Trader Joe’s, Whole Foods and 95 more", "pct_change": 0.01, "negative": "positive" }, { "category": "Taxi", "total": 286688, "ypos": 25, "text": "NYC Taxi", "pct_change": -0.97, "negative": "negative" }, { "category": "Tobacco and vaping", "total": 31551, "ypos": 45, "text": "Hemper and JUUL", "pct_change": -0.48, "negative": "negative" }, { "category": "Tolls", "total": 1290462, "ypos": 58, "text": "E-ZPass, FasTrak and SunPass", "pct_change": -0.57, "negative": "negative" }, { "category": "Toys", "total": 58039, "ypos": 36, "text": "Build-a-Bear Workshop, F.A.O. Schwarz, Toys \"R\" Us and two more", "pct_change": -0.85, "negative": "negative" }, { "category": "Video streaming", "total": 2131943, "ypos": 60, "text": "Netflix, Hulu, Disney Plus and 17 more", "pct_change": 0.38, "negative": "positive" }, { "category": "Warehouse clubs", "total": 15013125, "ypos": 7, "text": "Costco and BJ’s Wholesale Club", "pct_change": 0.01, "negative": "positive" } ] }
View
$-y-p1444$-y-p88319$-y-p48$-y-p47607$-y-p49
Gaming
Alcohol
Food delivery
Warehouse clubs
Home improvement
Online grocers
Lodging
Meal kits
Apparel
Cruises
Airlines
Charitable giving
General merchandise and e-commerce
Fast foods
Supermarkets

More spending
Less spending
−100%
−50%
+0%
+50%
+100%
Cicero Specification
Specification
{
  "$schema": "../src/cicero.json",
  "name": "spending-bubble-desktop",
  "description": "This is a Cicero specification for 'COVID Spending (Bubble)' visualization from mobile to desktop.",
  "metadata": {
    "condition": "large"
  },
  "transformations": [
    {
      "description": "Resize the chart proportionately",
      "specifier": {
        "role": "view"
      },
      "action": "modify",
      "option": {
        "width": 945,
        "height": 250
      }
    },
    {
      "description": "Transpose axis",
      "specifier": {
        "role": "view"
      },
      "action": "transpose"
    },
    {
      "description": "Reposition the horizontal axis",
      "specifier": {
        "role": "hAxis"
      },
      "action": "reposition",
      "option": {
        "orient": "top",
        "offset": 30
      }
    },
    {
      "description": "Reverse the sorting of y encoding",
      "specifier": {
        "role": "row"
      },
      "action": "modify",
      "option": {
        "sort": {
          "reverse": false
        }
      }
    },
    {
      "description": "Reposition and resize annotations",
      "specifier": {
        "role": "annotation",
        "text": "$arrow-up$
More spending"
}, "action": "modify", "option": { "x": 502.5, "y": 10, "width": 150, "text": [ "More spending $arrow-right$" ], "textAlign": "left" } }, { "description": "Reposition and resize annotations", "specifier": { "role": "annotation", "text": "Less spending
$arrow-down$"
}, "action": "modify", "option": { "x": 302.5, "y": 10, "width": 150, "text": [ "$arrow-left$ Less spending" ], "textAlign": "right" } }, { "description": "Add mark labels", "specifier": { "role": "mark.label" }, "action": "add", "option": { "values": [ "Fitness", "Movie theaters", "Mobile", "Video streaming" ] } }, { "description": "Add callouts/ticks for labels", "specifier": { "role": "mark.label.tick", "values": [ "Airlines", "Cruises", "Fitness", "Movie theaters", "Lodging", "Apparel", "Meal kits" ] }, "action": "add" }, { "description": "Reposition and restyle labels", "specifier": { "role": "mark.label", "values": [ "Online grocers" ] }, "action": "modify", "option": { "anchor": "middle", "orient": "top-center", "dx": 0, "dy": -35, "textAlign": "center" } }, { "description": "Reposition and restyle labels", "specifier": { "role": "mark.label", "values": [ "Video streaming" ] }, "action": "modify", "option": { "anchor": "middle", "orient": "top-center", "dx": 0, "dy": -35, "textAlign": "center", "fontColor": "$mark", "fontStroke": null, "width": 65 } }, { "description": "Reposition and restyle labels", "specifier": { "role": "mark.label", "values": [ "Home improvement" ] }, "action": "modify", "option": { "anchor": "middle", "orient": "top-center", "dx": 0, "dy": -36, "width": 120, "textAlign": "center" } }, { "description": "Reposition and restyle labels", "specifier": { "role": "mark.label", "values": [ "Gaming", "Food delivery", "Alcohol" ] }, "action": "modify", "option": { "anchor": "middle", "orient": "bottom-center", "dx": 0, "dy": 5, "textAlign": "center" } }, { "description": "Reposition and restyle labels", "specifier": { "role": "mark.label", "values": [ "Warehouse clubs" ] }, "action": "modify", "option": { "anchor": "middle", "orient": "bottom-center", "dx": 0, "dy": 5, "textAlign": "center", "width": 70 } }, { "description": "Reposition and restyle labels", "specifier": { "role": "mark.label", "values": [ "Meal kits", "Movie theaters", "Lodging", "Apparel" ] }, "action": "modify", "option": { "anchor": "middle", "orient": "bottom-center", "dx": 0, "dy": 35, "textAlign": "center", "fontColor": "$mark", "fontStroke": null } }, { "description": "Reposition and restyle labels", "specifier": { "role": "mark.label", "values": [ "Airlines", "Cruises", "Fitness", "Charitable giving" ] }, "action": "modify", "option": { "anchor": "middle", "orient": "top-center", "dx": 0, "dy": -50, "textAlign": "center", "fontColor": "$mark", "fontStroke": null } } ] }
Transformed View
$-x-p1444$-x-p88319$-x-p48$-x-p47607$-x-p49
Gaming
Alcohol
Food delivery
Warehouse clubs
Home improvement
Online grocers
Lodging
Meal kits
Apparel
Cruises
Airlines
Charitable giving
Movie theaters
Fitness
Video streaming
General merchandise and e-commerce
Mobile
Fast foods
Supermarkets
More spending
Less spending
−100%
−50%
+0%
+50%
+100%