无法更改线条和散点图R ggplot的颜色

时间:2020-06-09 17:46:19

标签: r ggplot2 colors time-series

我对ggplot绘图比较陌生,所以我认为有些错综复杂的内容让我迷失了。我已经绘制了多个月的数据,其中数据按小时进行了分箱。每行都应按月着色,其中x轴是一天中的小时。我在更改线条的颜色时遇到麻烦,并且在ggplot中移动了东西以尝试使其正常工作,但是所有线条的颜色都保持黑色”

以下是我正在绘制的某些数据的示例:Example data

这是我的代码:

p <- ggplot(mtozoneavgk_month, aes(hour, Avgk, group = factor(Date) )) +
  geom_point(size = 4) +
  geom_line(size = 1)+
  scale_color_manual(values = c("#DC143C",  "#B22222", "#000080", "#00008B", 
  "#0000CD", "#0000FF", "#66B2FF", "#FF6347", "#FF0000", "#B22222"), 
  name = "Month", labels = c("Sept-2019", "Oct-2019", "Nov-2019", "Dec-2019", 
  "Jan-2020", "Feb-2020", "Mar-2020", "April-2020", "May-2020", "Jun-2020"),
  expand = c(0, 0))+ 
  ylab("rate constant (k)")+
  scale_y_continuous(label=scientific_10)+
  #scale_y_continuous(labels = fancy_scientific)+
  theme(axis.ticks.length = unit(0.2, "cm"),
    axis.ticks = element_line(size = 2), 
    axis.text=element_text(size=12, face = 'bold'),
    axis.title=element_text(size=14,face="bold"),
    axis.text.x = element_text(color = "black", face = "bold", size = 14), 
    axis.text.y = element_text(color = "black", size = 14),
    legend.title=element_text(size=14, face = "bold"), 
    legend.text = element_text(size = 14, face = "bold"),
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    panel.background = element_blank(),
    panel.border = element_rect(colour = "black", fill=NA, size=3))

p + scale_x_continuous(breaks = c(0,2,4,6,8,10,12,14,16,18,20,22,24),
label = c(0,2,4,6,8,10,12,14,16,18,20,22,24), 
expand = c(0, 0))

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

如果我们按以下方式简化您的代码(让ggplot2处理颜色和标签):

p <- ggplot(mtozoneavgk_month, aes(hour, Avgk, group = factor(Date), color = factor(Date))) +
  geom_point(size = 4) +
  geom_line(size = 1)+
  ylab("rate constant (k)")+
  theme(axis.ticks.length = unit(0.2, "cm"),
        axis.ticks = element_line(size = 2), 
        axis.text=element_text(size=12, face = 'bold'),
        axis.title=element_text(size=14,face="bold"),
        axis.text.x = element_text(color = "black", face = "bold", size = 14), 
        axis.text.y = element_text(color = "black", size = 14),
        legend.title=element_text(size=14, face = "bold"), 
        legend.text = element_text(size = 14, face = "bold"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        panel.border = element_rect(colour = "black", fill=NA, size=3))

我们获得以下图:

enter image description here

如果您还想控制颜色,我建议使用命名矢量:

pcolor <- c("#DC143C",  "#B22222", "#000080", "#00008B", 
            "#0000CD", "#0000FF", "#66B2FF", "#FF6347", "#FF0000")
names(pcolor) <- unique(mtozoneavgk_month$Date)
plabel <- c("Sept-2019", "Oct-2019", "Nov-2019", 
            "Jan-2020", "Feb-2020", "Mar-2020", "April-2020", "May-2020", "Jun-2020")
names(plabel) <- unique(mtozoneavgk_month$Date)

p <- ggplot(mtozoneavgk_month, aes(hour, Avgk, group = factor(Date), color = factor(Date))) +
  geom_point(size = 4) +
  geom_line(size = 1)+
  scale_color_manual(values = pcolor, 
                     name = "Month", 
                     labels = plabel,
                     expand = c(0, 0))+ 
  ylab("rate constant (k)")+
  theme(axis.ticks.length = unit(0.2, "cm"),
        axis.ticks = element_line(size = 2), 
        axis.text=element_text(size=12, face = 'bold'),
        axis.title=element_text(size=14,face="bold"),
        axis.text.x = element_text(color = "black", face = "bold", size = 14), 
        axis.text.y = element_text(color = "black", size = 14),
        legend.title=element_text(size=14, face = "bold"), 
        legend.text = element_text(size = 14, face = "bold"),
        panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        panel.background = element_blank(),
        panel.border = element_rect(colour = "black", fill=NA, size=3))

这将导致:

enter image description here

备注:我不知道是否是因为您提供给我们的示例,但是缺少了2019年12月,因此对您的代码进行了一些调整。自己制作时请注意