繁体   English   中英

scale_linetype_manual 不起作用或显示在 R 中的图例上,为什么?

[英]scale_linetype_manual is not working or shown on legend in R, why?

我想要两种线型(一种实线和一种虚线)并将其也显示在图例上(这也没有显示),我尝试了下面的代码,但行没有改变,我也尝试添加scale_linetype_manual(values=c("solid", "dashed"))scale_colour manual之前,并且没有任何效果。

 data<- data.frame(
          Date=(1:13),
          A=c(1.12,2.78,2.08,1.55,0.67,0.98,1.43,0.42,0.30,0.82,0.51,0.23,0.44),
          B= c(0.10,0.07,0.04,0.05,0.10,0.08,0.12,0.05,0.02,0.11,0.06,0.05,0.11),
          C= c(9.97,6.94,10.87,9.69,12.27,11.27,10.42,10.97,9.15,10.59,11.64,8.86,8.47))
    
    LINES <- c("A" = "solid", "B" = "dashed")
    
    ggplot(data)  + 
      geom_line(aes(Date, A, color = "A")) +
      geom_point(aes(Date, A))+
      geom_line(aes(Date, B*10, color="B"))+
      geom_point(aes(Date, B*10))+
      scale_y_continuous(sec.axis = sec_axis(~./100, name= expression(paste("B", "(", mu, "M)"))))+
      scale_color_manual(name = "", values = c("A" = "black", "B" = "black"), labels=c(A ~ (mu~M)), (B ~ (mu~M)))+
      scale_linetype_manual(values=LINES)+
      theme_classic()+
      ylab(bquote(A ~ (mu~M)))+
      xlab("")

在此处输入图像描述

使用gggplot2时您会一次又一次听到的一般建议是获取长格式数据。 当数据为长格式时,它使得绘制数据变得非常容易。

我们删除此处不需要的C列,并使用pivot_longer获取长格式数据,指定linetypecolor作为列名,并为它们绘制线和点图。

library(tidyverse)

data %>%
  select(-C) %>%
  pivot_longer(cols = -Date) %>%
  ggplot(aes(Date, value, color = name, linetype = name))  + 
  geom_line() +
  geom_point() + 
  scale_y_continuous(sec.axis = sec_axis(~./100, 
          name= expression(paste("B", "(", mu, "M)")))) + 
  scale_linetype_manual(values= LINES) +
  theme_classic()+
  ylab(bquote(A ~ (mu~M)))+
  xlab("")

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM