ggplotly 覆盖scale_fill_manual() 标签参数

ZLe*_*ine 5 r ggplot2 plotly

我正在尝试生成使用 ggplot2 制作的绘图的交互式版本,并且希望保留图例标签。该图是特定社区 6 年来每年收入分布的条形图。

我的 ggplot scale_fill_manual() labels 参数是:

 scale_fill_manual(values = values,
                          labels = c("< 10,000",
                                     "10,000 to 14,999",
                                     "15,000 to 24,999",
                                     "25,000 to 34,999",
                                     "35,000 to 49,999",
                                     "50,000 to 74,999",
                                     "75,000 to 99,999",
                                     "100,000 to 149,999"))
Run Code Online (Sandbox Code Playgroud)

当我运行p <- ggplotly(p)标签时,如预期的那样,更改为我在数据集中对数据进行分组的标签。例如,检查我的新图的前 12 个标签给出:

    > p$Incomes[1:12]
 [1] Households..Estimate..Less.than..10.000 
 [2] Households..Estimate..Less.than..10.000 
 [3] Households..Estimate..Less.than..10.000 
 [4] Households..Estimate..Less.than..10.000 
 [5] Households..Estimate..Less.than..10.000 
 [6] Households..Estimate..Less.than..10.000 
 [7] Households..Estimate...10.000.to..14.999
 [8] Households..Estimate...10.000.to..14.999
 [9] Households..Estimate...10.000.to..14.999
[10] Households..Estimate...10.000.to..14.999
[11] Households..Estimate...10.000.to..14.999
[12] Households..Estimate...10.000.to..14.999
Run Code Online (Sandbox Code Playgroud)

按照此处找到的示例ggplotly - R,标记跟踪名称,我运行作为测试:

p$Incomes[[1]] <- "< 10,000"
Run Code Online (Sandbox Code Playgroud)

出现错误:

Warning message:
In `[[<-.factor`(`*tmp*`, 1, value = c(NA, 9L, 9L, 9L, 9L, 9L, 17L,  :
  invalid factor level, NA generated
Run Code Online (Sandbox Code Playgroud)

几乎任何我尝试更改存储值的操作都会引发某种错误,无论我使用[]or [[]]as.factor还是as.integeror as.character,我什至尝试使用<<-(这很糟糕)但仍然出现错误。

我为解决这个问题所做的各种努力都没有成果,而且没有特别周密的计划,因为我几乎不知道问题是什么。我将不胜感激任何可以手动编辑图例的方法。如果我需要重新格式化我的问题或提供更多信息,请告诉我。