2017-05-15 14 views
0

私は自分の問題に対する答えを見つけようとしていましたが、フォーラムで見つけたもので解決できませんでした。私はそれがマッピングの権利を行うキーを知っています(または少なくとも私は以前のmsgsから理解したものです)。ここでggplot2 legendを追加する

は私のコードです:

dat <- data.frame(
    Individuals = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 
    Year = c(0, 5, 0, 0, 0, 0, 8, 0, 0, 3), 
    end = c(15, 10, 15, 6, 10, 8, 15, 6, 9, 5)) 

    Person_time_R <- ggplot(dat) + 
    geom_segment(aes(x=Year, y=Individuals, xend=end, yend=Individuals), 
       color=c("blue","red","red","blue","red","red","blue","red","red","red"), 
    size=2) + 
    scale_y_reverse() + 
    ggtitle("Person-time") + 
    xlab("Years") + 
    ylab("Individuals") + 
    theme(
    plot.title = element_text(hjust = 0.5, size=26, face="bold"), 
    axis.title.x = element_text(size=20), 
    axis.title.y = element_text(size=20) 
    ) + 
    scale_y_discrete(limits=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) + 
    scale_x_continuous(limits = c(0,16)) + 
    scale_x_discrete(limits=c(0, 1, 3, 5, 7, 9, 11, 13, 15)) 

私は「赤」と「青」の線を分離するために伝説を持っているしたいと思います...どのように私はそれを行うだろうか?

+0

プロットの中で「赤」と「青」は何を意味していますか? – www

+0

@ycw '青色'と '赤色'は、観察された10種の間で、2つの異なるタイプの観察をマークします。 'C(1,2,3,2,5,6,7,8,9,10)'のようにグループ化することができます: 'C(1,2,3,4,5,6,7,8,9,10) 1,2,2,2) ' 十分分かりませんか分かりません/ – Bram

+1

色を付けるデータを列のデータフレームに追加して、それを' observation_type'と呼んでください。次に 'aes()'に 'color = observation_type'を追加します。その後、凡例が自動的に作成されます。 – Gregor

答えて

1

色を凡例として表示するには、タイプを示す列を追加して、aesにマッピングしてgeom_segmentを入力します。最後に、scale_color_manualを使用して名前と色を指定します。

dat$Type <- c(1, 2, 2, 1, 2, 2, 1, 2, 2, 2) 

ggplot(dat) + 
    geom_segment(aes(x=Year, y=Individuals, xend=end, yend=Individuals, colour = factor(Type)), 
       size = 2) + 
    scale_color_manual(values = c("blue", "red"), name = "Type") 
+1

ycwの答えを完成させるには、データフレーム内の各「タイプ」の実際の名前を使用して(理想的にはそれを因数分解して)凡例に直接表示されるようにすることもお勧めします。例: 'dat $ TypeB "、" TypeB "、" TypeB "、" TypeB "、" TypeB "、" TypeA "、" TypeB "、" TypeB "))' –

関連する問題