Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在一个面板中排斥文字?_R_Ggplot2_Label_Facet Wrap_Ggrepel - Fatal编程技术网

R 如何在一个面板中排斥文字?

R 如何在一个面板中排斥文字?,r,ggplot2,label,facet-wrap,ggrepel,R,Ggplot2,Label,Facet Wrap,Ggrepel,我很难找到一种方法来排斥单面网格“Mountain”(上中)中的文本标签。所有其他州标签都很清晰,可以区分,但我不知道如何在“Mountain”中移动州标签而不影响其他网格 我试过使用: geom_text_repel(force = x) 但我不知道有哪种方法可以强迫代码只影响一个网格。下面是我的代码和输出。我期望的结果是让“山脉”网格中的州看起来像“西北中心”中的州一样,或者是一些易于阅读的州 另一件我还没有完全弄清楚的事情是我的x轴标签。为了给州标签留出空间,我将2010年至2018年列

我很难找到一种方法来排斥单面网格“Mountain”(上中)中的文本标签。所有其他州标签都很清晰,可以区分,但我不知道如何在“Mountain”中移动州标签而不影响其他网格

我试过使用:

geom_text_repel(force = x)
但我不知道有哪种方法可以强迫代码只影响一个网格。下面是我的代码和输出。我期望的结果是让“山脉”网格中的州看起来像“西北中心”中的州一样,或者是一些易于阅读的州

另一件我还没有完全弄清楚的事情是我的x轴标签。为了给州标签留出空间,我将2010年至2018年列为年度范围,但我只希望axis显示2010年至2017年

代码/输出:

p2 + xlim(breaks = seq(2010,2017, by = 1))
Error in limits.numeric(c(...), "x") : length(lims) == 2 is not TRUE
有什么建议吗

p <- ggplot(plotflow, aes(x = YEAR, y = Y, group = STATE)) + 
  theme_bw() + 
  theme(panel.grid.major = element_blank()) + 
  theme(panel.grid.minor = element_blank()) + 
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1))
p0 <- p + geom_point(color = "gray70")
p1 <- p0 + geom_smooth(mapping = aes(group = STATE), 
                       se = F, color = "gray10")
p2 <- p1 + geom_text_repel(data = subset(dataplot, YEAR == max(YEAR)),
                           mapping = aes(x = YEAR, y = Y, label = ALPHA_CODE),
                           size = 3.6, segment.color = NA, nudge_x = 40) + coord_cartesian(c(min(dataplot$YEAR), 2018))
p2 + labs(x = "Year") + 
  facet_wrap(CENSUS_DIVISION ~ ., nrow  = 3)

p关于将
geom\u text\u repel()
应用于一个特定方面的第一个问题。在您的情况下,对
geom\u text\u repel()
的调用可能类似于这样(我自己无法尝试,因为我没有您的数据):

p2
p2 <- p1 + geom_text_repel(
   data = subset(dataplot, YEAR == max(YEAR)),
   mapping = aes(x = YEAR, y = Y, label = ALPHA_CODE, CENSUS_DIVISION = "MOUNTAIN"),
   size = 3.6, segment.color = NA, nudge_x = 40) + 
   coord_cartesian(c(min(dataplot$YEAR), 2018))