ggplot2-我无法插入图表图例

时间:2019-03-20 16:20:17

标签: r ggplot2 legend

大家晚上好, 数据是:

-o GSUtil:parallel_composite_upload_threshold=150M

我的图表有点问题。

我写了这段代码:

Data      X     Y
01/01/16 17073 229
01/02/16 16094 375
01/03/16 17380 880
01/04/16 19993 9978
01/05/16 26290 24782
01/06/16 32982 36437
01/07/16 38490 42547
01/08/16 36688 43928
01/09/16 22799 36734
01/10/16 15000 11816
01/11/16 10494 680
01/12/16 10944 434
01/01/17 17217 235
01/02/17 15501 466
01/03/17 19236 1608
01/04/17 22239 8490
01/05/17 30390 23374
01/06/17 35579 34568
01/07/17 39613 43283
01/08/17 44089 44741
01/09/17 25542 35611
01/10/17 16357 10131
01/11/17 11754 541
02/12/17 11583 362

enter image description here

我想把关于这两行的图例。我为这两行写了show.legend = TRUE,但是不起作用。

3 个答案:

答案 0 :(得分:2)

使用ggplot时,确保以正确的顺序编写代码非常重要。例如,在末尾添加geom_point()将覆盖先前的参数。尝试将其删除。这是一个应该起作用的脚本。

  ggplot(data=DB_Reg)+
  geom_line(mapping=aes(y=X,x= Data,color="X"),size=1 ) +
  geom_line(mapping=aes(y=Y,x= Data,color="Y"),size=1) +
  scale_color_manual(values = c(
    'X' = 'darkblue',
    'Y' = 'red')) +
  labs(color = 'Y series')

答案 1 :(得分:1)

添加一些数据以重现代码是一个好规则。 假设数据看起来像

ROW_NUMBER()

为了在图例上显示,您的参数应映射在WITH CTE AS( SELECT *, ROW_NUMBER() OVER( PARTITION BY Name ORDER BY Priority, TimeStamp DESC) rn FROM MyData WHERE IsEnabled = 1 ) SELECT Name, Timestamp, IsEnabled, Priority From CTE WHERE rn = 1; 中。 为此,需要进行一些数据准备。 下面的代码应该给出您想要的结果:

library(dplyr)
library(ggplot2)
library(tidyr)
library(lubridate)

DB_Reg <- tibble(Data=seq(ymd('2016-01-01'),ymd('2016-12-31'), by = 1)) %>% 
  mutate(X=2+sin(yday(Data)/360*2*pi),
         Y=2+cos(yday(Data)/360*2*pi))

enter image description here

答案 2 :(得分:0)

查看此处的数据会很有帮助,主要问题是您分别绘制了两个数据系列,而不是在ggplot2中为aes()提供分组变量(即{{1 }},colorshape)。

例如,如果要绘制group,并按qsec ~ hp数据集内的圆柱数分组,则需要在mtcars函数内指定所有美学,例如下方:

ggplot()

每个组使用的颜色是默认的library(ggplot2) data(mtcars) ggplot(mtcars, aes(x = hp, y = qsec, color = as.factor(cyl) ) ) + geom_point() + labs(title = "Horsepower Makes Cars Faster", x = "Quarter Mile Time (Seconds)", y = "Horsepower", color = "Number of Cylinders" ) ,但是如果您要使用自定义调色板,则可以使用ggplot功能;

scale_color_manual()

有很多方法可以手动调整图例,但是将分组变量添加到library(ggplot2) data(mtcars) ggplot(mtcars, aes(x = hp, y = qsec, color = as.factor(cyl) ) ) + geom_point() + labs(title = "Horsepower Makes Cars Faster", x = "Quarter Mile Time (Seconds)", y = "Horsepower", color = "Number of Cylinders" ) + scale_color_manual(values = c("4" = "firebrick", "6" = "cornflowerblue", "8" = "chartreuse3" ) ) 并用DB_Reg的美感来指定它可以解决您的问题。