2016-08-04 1 views
0

Я новичок в R и ggplot2. Я работаю с ggplot2, и у меня возникли проблемы с получением check_overlap=TRUE, чтобы повлиять на мой geom_text. Вот пример моего кода:Check_overlap не работает в ggplot2

require(ggplot2) 
LV_plot = ggplot(plotFrame,aes(x=Age,y=fit)) 
#... plotting other things 
my_text = geom_text(data=myDataFrame,mapping=aes(x=Age,y=myDataFrame$firstVolume, label=paste(myDataFrame$firstVolume)),angle=70,size=6,check_overlap=TRUE) 
LV_scatterNorm = geom_point(data=myDataFrame,aes(x=Age,y=firstVolume),size=4.0) 
LV_lineNorm = geom_line(data=myDataFrame,aes(x=Age,y=firstVolume),size=1.2) 

Это создает несколько текстовых элементов, но check_overlap = TRUE не оказывает никакого влияния на их перекрытия - они перекрывают большую часть времени.

Вот мои данные:

myDataFrame:

  firstVolume Age 
1   26502.54 56 
2   28335.54 57 

plotFrame:

Age  fit  se  sd 
1 43 10481.39 2555.560 16036.31 
2 44 11164.03 2390.339 16036.31 
3 45 11849.98 2225.044 16036.31 
4 46 12537.78 2063.854 16036.31 
5 47 13225.95 1910.410 16036.31 
6 48 13913.05 1767.397 16036.31 
7 49 14597.60 1636.212 16036.31 
8 50 15278.15 1516.911 16036.31 
9 51 15950.26 1408.477 16036.31 
10 52 16612.87 1315.257 16036.31 
...etc. 

Мой результат выглядит следующим образом:

enter image description here

Это в R 3.1.1. Что я делаю не так?

(я попытался установить ggrepel но мне кажется, что ggrepel не доступна для этой версии R.)

Спасибо!

+1

Не могли бы вы предоставить примеры данных и воспроизводимый пример? http://stackoverflow.com/help/mcve –

+0

Вы уверены, что используете самую последнюю версию ggplot2? Ваш пример работает для меня, удаляя одну из ярлыков. – aosmith

+0

Это может быть не последнее, так как я не использую самую последнюю версию R. Является ли check_overlap относительно новой функцией? – Sarah

ответ

1

Поскольку нет данных примера, я попробовал это, используя данные примера из пакета. Таким образом, check_overlap отлично работает.

Возможно, вам потребуется уменьшить размер ваших меток, если это не позволяет избежать совпадений.

require(ggplot2) 
data("mtcars") 
mtcars 
p <- ggplot(mtcars, aes(wt, mpg, label = rownames(mtcars))) 
p 

p + geom_text() 
# Avoid overlaps 
p + geom_text(check_overlap = TRUE) 

Просьба представить воспроизводимый пример, если это не решит вашу проблему, и я соответствующим образом обновлю ответ.

+0

Благодарим за ответ! Я обновил свой вопрос, чтобы включить пример кода. – Sarah