2017-08-11 161 views
0

我的数据是这样的:删除重复的标签

composerName    season Location Time Venue eventType id conductorName interval movement workTitle 
1 Anthem,     1918-19  55 55 55  55 55   55  55  55  55 
2 Beethoven, Ludwig van 1912-13  37 37 37  37 37   37  37  37  37 
3 Beethoven, Ludwig van 1915-16  38 38 38  38 38   38  38  38  38 
4 Beethoven, Ludwig van 1919-20  38 38 38  38 38   38  38  38  38 
5 Beethoven, Ludwig van 1920-21  36 36 36  36 36   36  36  36  36 
6 Beethoven, Ludwig van 1921-22  44 44 44  44 44   44  44  44  44 

我的代码如下所示:

ggplot(aes(x = composerName, y = id, fill = season, label = composerName), data = music)+ 
    geom_bar(stat = 'identity')+ 
    geom_text(angle = 90, position = position_dodge(width = 1), hjust = -.1) 

其中给出这样的:

enter image description here

我想它每个作曲家只包括一个标签,而不是每个季节的标签。我如何删除重复的标签?

+1

创建,你必须每一个作曲家标签的新data.frame并传递给'geom_text(数据=。 ..)'。 –

+0

例如'geom_text(data = dplyr :: distinct(music,composerName))'应该可以工作。你也可以使用'geom_col'而不是'geom_bar(stat =“identity”)' – Axeman

+0

@Axeman给我'错误:不能将ggproto对象加在一起。你忘了把这个对象添加到ggplot对象吗?'。 – snapcrack

回答

0

想通了:我需要包括stat = 'identity'geom_text()

ggplot(aes(x = composerName, y = id, fill = season, label = composerName), data = music)+ 
    geom_bar(stat = 'identity')+ 
    geom_text(stat = 'identity', angle = 90, 
      position = 'identity', hjust = -.2, check_overlap = TRUE) 

enter image description here