R 在ggplot map Studio中更改图例中的文本

R 在ggplot map Studio中更改图例中的文本,r,ggplot2,maps,legend-properties,R,Ggplot2,Maps,Legend Properties,我正试图创建一张美国地图,上面写满了流感疾病的热度。我有两个问题: 我无法更改图例中的变量文本 图例的顺序是错误的。1->10->2-> 这是代码 library(maps) library(ggplot2) # Get all states data all_states <- map_data("state") # Clean the data subHeat <- subset(q4_heatMap, WEEK=="4") region <- tolower(subH

我正试图创建一张美国地图,上面写满了流感疾病的热度。我有两个问题:

  • 我无法更改图例中的变量文本
  • 图例的顺序是错误的。1->10->2->
  • 这是代码

    library(maps)
    library(ggplot2)
    
    # Get all states data
    all_states <- map_data("state")
    
    # Clean the data
    subHeat <- subset(q4_heatMap, WEEK=="4")
    region <- tolower(subHeat$STATENAME)
    stateHeat <- subHeat$ACTIVITY.LEVEL
    stateHeat <- gsub('Level ', '', stateHeat)
    usHeat <- data.frame(region,stateHeat)
    
    # Merge two set of dataframes
    heatTotal <- merge(all_states, usHeat,by="region")
    
    # heatColor
    heatColor <- c("peru", "hotpink", "orchid", 
                   "mediumpurple", "deepskyblue", "cyan3","mediumseagreen",
                   "limegreen","darkkhaki","salmon")
    
    库(地图)
    图书馆(GG2)
    #获取所有状态数据
    
    所有状态问题在于状态热被读取为一个字符而不是一个数字,离散因子类型将其排序为1、10、2、3

    因此,我们应该用
    fct\u reorder
    对因子重新排序,并告诉它我们想要1到10的正确数字顺序

    库(地图)
    #>警告:包“映射”是在R版本3.5.2下生成的
    图书馆(GG2)
    #获取所有状态数据
    
    你的例子并没有再现所有的情况——第四季度的热图来自哪里?不管怎么说,我也许能弄明白,但如果你的问题完全可以重复,那就更好了。@ArthurYip对不起,上传了文件。结果发现有全新的函数
    as.factor.numeric
    fct\u inseq
    ,它们会自动按数字顺序重新排序,但它们尚未发布。雪人的意思是猫::as\u factor.numeric:)我喜欢开源tidyverse的不断发展!非常感谢。正是我想要的。
    # Generate plot
    usHeatMap <- ggplot(data = heatTotal) + 
                 geom_polygon(aes(x = long, y = lat, fill = stateHeat, group = group)) + 
                 coord_fixed(1.3) + 
                 labs(title = "2018-19 Influenza Season Week 4",
                         x = "Longitude", y="Latitude", color="Heat level") + 
                 scale_fill_manual(labels=c("Extreme High","Middle High","Low High",
                                           "Moderate","Low Moderate","Higher Low","Low",
                                           "Minimal","Very Minimal","Extreme Minimal")
                         ,values = heatColor)