You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中为亚利桑那、犹他、爱达荷州实现自定义变量渐变色着色求助

Solution: Custom Gradient Fill for Arizona, Utah, Idaho in ggplot2

To apply a gradient fill based on a custom variable to your three states, you’ll need to link your map data to the variable values and map that variable to the fill aesthetic in ggplot2. Here’s a step-by-step implementation:

Step 1: Prepare Your Data

First, ensure your map data includes state identifiers and merge it with your custom variable values. We’ll use the maps package’s built-in state data and add your custom metrics:

# Load required packages
library(ggplot2)
library(maps)
library(dplyr)

# Get map data for Arizona, Utah, Idaho
state_map <- map_data("state") %>%
  filter(region %in% c("arizona", "utah", "idaho"))

# Create your custom variable data (replace these values with your own)
custom_state_values <- data.frame(
  region = c("arizona", "utah", "idaho"),
  custom_metric = c(15, 30, 22) # Example continuous values; adjust to your needs
)

# Merge map data with custom values
azutid <- state_map %>%
  left_join(custom_state_values, by = "region")

Step 2: Plot with Gradient Fill

Now, map your custom variable to the fill aesthetic inside aes(), then define your gradient color range:

ggplot(data = azutid) +
  geom_polygon(
    aes(x = long, y = lat, group = group, fill = custom_metric),
    color = "black", # Keep state borders visible
    linewidth = 0.5
  ) +
  coord_fixed(1.3) +
  # Customize the gradient (adjust low/high colors to your preference)
  scale_fill_gradient(
    low = "#e5f5e0", 
    high = "#31a354", 
    name = "Your Custom Metric" # Legend title
  ) +
  # Optional: Clean up the plot theme
  theme_minimal() +
  theme(
    axis.text.text = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank()
  ) +
  labs(title = "Gradient Fill by Custom Variable: AZ, UT, ID")

Key Customization Tips

  • Adjust Gradient Type: Use scale_fill_gradient2() for a diverging gradient (ideal if your variable has a meaningful midpoint) or scale_fill_viridis_c() for a colorblind-friendly viridis scale.
  • Categorical Variables: If your custom variable is categorical (not continuous), replace the gradient scale with scale_fill_manual(values = c("AZ_color", "UT_color", "ID_color")) to assign specific colors per state.
  • Hide Legend: Add guides(fill = FALSE) to your plot code if you don’t want to display the gradient legend (like your original snippet).

Content of the question来源于stack exchange,提问作者CryptoDivision

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:54:02