2017-12-26 4 views
1

凡例の要素から黒のスルーラインを削除するのに問題があります。黒い線は「カジュアルユーザーによる占有率」要素に含まれています。ggplotを使ってRの凡例要素からスルー線を除去する方法

以下

が出力プロットへのリンク

EDIT続く、私のコードです - 私は別の場所で問題を再現するためにコードを追加したことに注意してください。このデータはランダムで、出力は以下のように表示されません。ただし、同じ問題を返し、元のコードで使用することができます。

Account.type <- c("Casual", "Member", "Casual", "Member", "Casual", "Member", "Casual", "Member", "Casual", "Member") 
how <- c(0, 10, 25, 35, 50, 60, 75, 100, 125, 150) 
hire <- c(4540, 6780, 9125, 1000, 6993, 5435, 2347, 0693, 5434, 5432) 
cas_percent <- c(34, 65, 54, 12, 65, 78, 89, 76, 54, 43) 
plot_data <- data.frame(Account.type, how, hire, cas_percent) 


    #plot x (time) 
    plot <- ggplot(data = plot_data, 
        aes(x = how)) 

    #plot percent casuals 
    plot <- plot + geom_ribbon(aes(ymin = 0, ymax = (cas_percent), fill = "% of Hires by Casual Users"), colour = "transparent", alpha = .5, show.legend = TRUE) 

    #plot hires 
    plot <- plot + geom_line(aes(y = hire/100, colour = Account.type), size = .8, show.legend = T) 

    #fill aes 
    plot <- plot + scale_fill_manual(name = '', values=c("% of Hires by Casual Users" = "grey")) 

    #visualise 
    plot 

    #add title 
    plot <- plot + labs(
     title = "Who Uses the Twin City Bike Share?", 
     y = "Hires (100's)", 
     x = "Day of Week") 

    #adjust x axis 
    plot <- plot + scale_x_continuous(
     breaks = c(0, 24, 48, 72, 96, 120, 144), 
     label = c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")) + 
     theme(axis.text.x = element_text(hjust=-0.05)) 

    #adjust right y axis 
    plot <- plot + scale_y_continuous(sec.axis = sec_axis(~.*1, name = "Percent of Hires by Casual Users [%]")) 

    #visualise 
    plot 

出力: enter image description here

私は伝説を修正する方法上の任意の提案ですか?

+0

を再現可能なデータを提供してください。 – zx8754

+0

'geom_point'レイヤから' show.legend = TRUE'を削除しますか? – aosmith

+0

geom_ribbon?それを試して動作しませんでした。ありがとう –

答えて

0

あなたはlinetypeを変更し、問題を修正する必要があり

plot <- plot + geom_ribbon(aes(ymin = 0, 
    ymax = (cas_percent), fill = "% of Hires by Casual Users"), 
    colour = "transparent", 
    alpha = .5, 
    show_guide = TRUE) + 
    guides(fill = guide_legend(override.aes = list(linetype = 0))) 

としてライン

plot <- plot + geom_ribbon(aes(ymin = 0, ymax = (cas_percent), 
fill = "% of Hires by Casual Users"), 
colour = "transparent", alpha = .5, show.legend = TRUE) 

以下、それを0

変更を設定するためにguide_legendを使用することができます。

0

両方のレイヤーからshow.legend=TRUEを削除する必要があります。あなたのプロットは、次のようになります。

ggplot(data = plot_data, aes(x = how)) + 
geom_ribbon(aes(ymin = 0, ymax = (cas_percent), fill = "% of Hires by Casual Users"), 
       colour = "transparent", alpha = .5) + 
geom_line(aes(y = hire/100, colour = Account.type), size = .8) + 
scale_fill_manual(name = '', values=c("% of Hires by Casual Users" = "grey")) 

enter image description here

関連する問題