首页 > 解决方案 > 如何更改两条线之一的线型

问题描述

我想更改图中两条线之一的线型,只将“line1”变为虚线。

我的情节:

在此处输入图像描述

我的数据如下所示:

    Year Sex    value  Rate Group            
   <dbl> <chr>  <dbl> <dbl> <chr>            
 1  1912 Female    18 1.14  A 
 2  1912 Male      52 0.893 L     
 3  1913 Female    25 1.02  A 
 4  1913 Male      42 1.05  L      
 5  1914 Female    14 1.26  A 
 6  1914 Male      67 1.29  L      
 7  1915 Female    25 1.32  A 
 8  1915 Male      61 1.45  L     
 9  1916 Female    32 1.52  A 
10  1916 Male      71 1.64  L         
11  1917 Female    42 2.01  A 
12  1917 Male      92 1.87  L 

我的代码:

data %>% ggplot() + 
  geom_bar(aes(x = Year, y = value, fill= Sex), stat = "identity", 
           width=0.8,
           alpha=0.8) + 

  geom_line(aes(x = Year, y = Rate * 100, colour= Group),
            size = 1.0) + 

  scale_colour_manual(labels = c("line1","line2"), 
                      values = c("red","blue"))+ 

  scale_fill_manual(values = c("Female"="green","Male"="black"))+

  guides(fill=guide_legend(title = "Number"), 
         color=guide_legend(title= "Ratio"))

有人可以帮忙吗?我尝试了很长一段时间,但失败了。提前致谢。

标签: rggplot2

解决方案


正如评论中所建议的,并使用每个 scale_*_manual 中的“名称”术语来指定图例名称:

data %>% 
  ggplot() + 
  geom_bar(aes(x = Year, y = value, fill= Sex), stat = "identity", 
           width=0.8,
           alpha=0.8) +
  geom_line(aes(x = Year, y = Rate * 100, 
                colour = Group, linetype = Group),
            size = 1.0) + 
  scale_colour_manual(name = "Ratio",
                      labels = c("line1","line2"), 
                      values = c("red","blue"))+ 
  scale_linetype_manual(name = "Ratio",
                      labels = c("line1","line2"), 
                      values = c("dashed","solid"))+ 
  scale_fill_manual(name = "Number", 
                    values = c("Female"="green","Male"="black"))

在此处输入图像描述


推荐阅读