如何基于分类变量在R Plotly中创建叶绿素图?

问题描述 投票:0回答:1

我正在尝试创建美国的chloropleth映射,该映射使用分类变量作为州色,但是我只得到一个空白映射。地物图与分类数据兼容吗?如果是这样,语法如何更改?

[对于我的数据,我只是上载了一张表格,其中包含状态,并随机包含“良好”,“不良”,“确定”之一。

我可以在下面的代码中进行哪些更改才能使其正常工作?我尝试了一种变通方法,该方法可以稍微改变状态的颜色,但是颜色栏会变色。 (value4是我的“良好”,“不良”,“确定”的分类变量)

很抱歉,如果我的问题不清楚或我的信息不好。如果有人有其他问题,我可以回答。在此先感谢

foo <- brewer.pal(n = 3,
                        name = "Set1")

df <- mutate(df, test = ntile(x = value4, n = 3))

cw_map <- plot_ly(
  data = df,
  type = "choropleth",
  locations = ~ state,
  locationmode = "USA-states",
  color = ~ test,
  colors = foo[df$test],
  z = ~ test
) %>%
  layout(geo = list(scope = "usa"))

print(cw_map)
r maps plotly categorical-data
1个回答
0
投票

您需要以代码形式提供状态,所以让我们从此开始:

STATES <-c("AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", 
"HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", 
"MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", 
"NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", 
"UT", "VT", "VA", "WA", "WV", "WI", "WY")

[就像您一样,我们为每个州提供随机值4:

df = data.frame(state=STATES,
value4=sample(c("Good", "Bad", "OK."),length(STATES),replace=TRUE))

df <- mutate(df, test = ntile(x = value4, n = 3))
# or you can just do df$test = as.numeric(factor(df$value4))

我们可以绘制:

foo <- brewer.pal(n = 3,name = "Set1")

cw_map <- plot_ly(
  data = df,
  type = "choropleth",
  locations = ~ state,
  locationmode = "USA-states",
  color = ~ test,
  colors = foo,
  z = ~ test
) %>%
  layout(geo = list(scope = "usa"))

print(cw_map)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.