0

我的 df 看起来像这样

df <- read.table(text="
                 cat          eff   count   segment   segment2
    1              1            0     123     plane    plane_0
    2              2           25      12     plane   plane_25
    3              3           50      54     plane   plane_50
    4              4           75      34     plane   plane_75
    5              1           50      62       car     car_50
    6              2           75      12       car     car_75
    7              1           50      11      boat    boat_50
    8              2           75      10      boat    boat_75
", header=TRUE)

我需要它把这个数据框放到折线图上。我创建了这段代码,但我需要将它除以颜色和线条颜色。

飞机应该是红色的,汽车应该是绿色的船蓝色的。如果 eff 为 0,则线应为实线,如果 eff 为 25,则线应为虚线,50 = 虚线,75 双虚线。

ggplot(df, aes(x = as.numeric(cat), y = eff, color = segment2)) +
  geom_line(stat = "identity", size = 1.5, linetype = "dashed") +
  geom_point(size = 3.5) 
4

1 回答 1

0

你可以试试这个:

ggplot(df, 
       aes(x = as.numeric(cat), y = eff)) +
  geom_line(aes(linetype = factor(eff)), size = 1.5) +
  geom_point(aes(color = segment), size = 3.5) +
  scale_color_manual(values = c("boat" = "blue", "car" = "green", "plane" = "red")) +
  scale_linetype_manual(values = c("0" = "solid", "25" = "dashed", 
                                   "50" = "dotted", "75" = "twodash"))

阴谋

(注:根据样本数据,汽车对应的点完全隐藏在其他点之下。)

于 2019-04-24T09:17:31.530 回答