Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.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
如何在ggplot中使用带有DirectLabel的表达式_R_Ggplot2_Label_Scatter Plot_Direct Labels - Fatal编程技术网

如何在ggplot中使用带有DirectLabel的表达式

如何在ggplot中使用带有DirectLabel的表达式,r,ggplot2,label,scatter-plot,direct-labels,R,Ggplot2,Label,Scatter Plot,Direct Labels,我正在寻找一种方法来避免在散点图中重叠标签。我发现directlabels工作正常,但不允许将表达式用作标签,也不允许选择要显示和不显示的标签 以下是一个例子: p1使用geom_text()绘制一些(我选择的)带有表达式解析的标签,允许使用希腊字母和上标等内容,但标签可以重叠 p2避免与directlabels()重叠,但我无法控制绘制哪些标签,也无法使用表达式解析 我怎样才能兼得这两种方法的优点 require(ggplot2) require(directlabels) par <

我正在寻找一种方法来避免在散点图中重叠标签。我发现directlabels工作正常,但不允许将表达式用作标签,也不允许选择要显示和不显示的标签

以下是一个例子:

p1使用geom_text()绘制一些(我选择的)带有表达式解析的标签,允许使用希腊字母和上标等内容,但标签可以重叠

p2避免与directlabels()重叠,但我无法控制绘制哪些标签,也无法使用表达式解析

我怎样才能兼得这两种方法的优点

require(ggplot2)
require(directlabels)

par <- c("Ei", "Gb", "Gf", "Gl", "w1", "w2", "w3", "w4",
     "w5", "Alpha", "Beta", "Amin", "dl", "df")
df <- data.frame(x=runif(14), y=runif(14), Parameters=par)

# labels with expressions
labels <- c("Ei" = 'E[i]', "Gb" = 'G[b]', "Gf" = 'G[f]', "Gl" = 'G[l]', 
             "w1" = 'omega[1]', "w2" = 'omega[2]', "w3" = 'omega[3]', "w4" = 'omega[4]', 
             "w5" = 'omega[5]', "Alpha" = 'alpha', "Beta" = 'beta', "Amin" = 'A[min]', 
             "dl" = 'd[l]', "df" = 'd[f]')

# and missing values
labels[which(sqrt(df$x^2 + df$y^2) < .5)] <- NA


p1 <- ggplot(data=df, aes(y=y, x=x, colour=Parameters)) + 
  geom_point() + scale_colour_discrete() +
  coord_cartesian(xlim=c(-2,3), ylim=c(-2,3)) + # causes overlapping
  geom_text(aes(label = labels), hjust=-0.3, vjust=1, 
            show_guide=FALSE, parse=TRUE) 

p1 # selected labels appear with correct expression


p2 <- direct.label(p1, method='smart.grid')
p2 # all labels appear (not wanted) without expression parsing
require(ggplot2)
需要(directlabels)

也许这会有所帮助:您可以选择显示哪一个,其中“cex”参数为要隐藏的参数设置零值:
cex