r-在ggplot中用一个x轴绘制两个图(3个变量)

Yu Deng

我正在尝试在一张图中绘制两个流量和一个降雨数据。我将其分解为顶部和底部,如下图所示。在这里,我有两个关于该图和使用年龄的问题,但无法解决。

  1. 为什么即使我将其设置为蓝色,观察到的流量也始终为黑色?我是否不小心使用了其他一些参数来覆盖它?
  2. 最重要的是,如何为底部绘图添加图例?我尝试了许多不同的代码,但是它们似乎对我不起作用。

    x = data.frame(date = Date, rain = Obs_rain, obsflow = Obs_flow,simflow=Sim_flow)
    
    g.top <- ggplot(x, aes(x = date, y = rain, ymin=0, ymax=rain)) +
             geom_linerange() +
             scale_y_continuous(trans = "reverse") +
             theme_bw() +
             theme(plot.margin = unit(c(1,5,-30,6),units="points"),
             axis.title.y = element_text(vjust =0.3)) +
             labs(x = "Date",y = "Rain(mm)")
    
    g.bottom <- ggplot(x, aes(x = date, y = obsflow, ymin=0, ymax=obsflow), colour = "blue",size=0.5) +
             geom_linerange() +  #plot flow
             geom_linerange(aes(y = simflow, ymin=0, ymax=simflow), colour = "red", size =0.5)+ 
             labs(x = "Date", y = "River flow (ML/day)") +
             theme_classic() +
             theme(plot.background = element_rect(fill = "transparent"),
             plot.margin = unit(c(2,0,1,1),units="lines"))
    
    grid.arrange(g.top,g.bottom, heights = c(1/5, 4/5)) 
    

    在此处输入图片说明

更新:

我已经用蓝线颜色解决了这个问题。我不小心把论点放在错误的地方。但是我仍然在为传奇而挣扎。

    g.bottom <- ggplot(x, aes(x = date, y = obsflow, ymin=0, ymax=obsflow)) +
                geom_linerange(colour = "blue",size=0.5) +  #plot flow
Andyteucher

为了解释@pierre的含义,请使用reshape2::melt将数据从“宽”格式转换为“长”格式,以便每个日期的流类型在一列中flow_type,值在另一列中flow_val)。然后,将其指定flow_type为用于分配颜色的分组变量:

require(reshape2)

x.melted <- melt(x, id.vars = c("date", "rain"), variable.name="flow_type",
                 value.name="flow_val")

g.bottom <- ggplot(x.melted, aes(x = date),size=0.5) +
  geom_linerange(aes(ymin=0, ymax=flow_val, colour=flow_type)) +  #plot flow
  labs(x = "Date", y = "River flow (ML/day)") +
  theme_classic() +
  theme(plot.background = element_rect(fill = "transparent"),
        plot.margin = unit(c(2,0,1,1),units="lines"), 
        legend.position="bottom") + 
  scale_colour_manual(guide = guide_legend(title = "Flow Type"), 
                      values = c("obsflow"="blue", "simflow"="red"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

r-在ggplot中用一个x轴绘制两个图(3个变量)

来自分类Dev

R在ggplot中绘制两个箱形图之一

来自分类Dev

如何在两个变量(r中的两个y轴图)上添加趋势线?

来自分类Dev

如何在两个变量(r中的两个y轴图)上添加趋势线?

来自分类Dev

R ggplot2-在一个具有不同x轴范围的图中绘制多个函数

来自分类Dev

在ggplot(R)上显示两个平行轴

来自分类Dev

如何基于R中的两个分类变量创建一个新变量?

来自分类Dev

通过R中的多个条件将一个变量转换为两个变量

来自分类Dev

在R中使用ggplot2创建两个变量的有向箭头图

来自分类Dev

如何在R中的x轴上使用两个分类变量制作散点图

来自分类Dev

两个类别变量的R条形图

来自分类常见问题

R ggplot2-在同一图中绘制年份变量一个在另一个上

来自分类Dev

R ggplot2-在同一图中绘制年份变量一个在另一个上

来自分类Dev

如何用R中的两个因素总结一个数值变量

来自分类Dev

用R中的两个变量创建一个“ by”循环

来自分类Dev

如何用R中的两个因素总结一个数值变量

来自分类Dev

R - 如何制作一个雷达图矩阵,每个图表中有两个图。

来自分类Dev

R水平条形图,带有在两个轴之间分割的轴标签

来自分类Dev

R:在另一个 ggplot 的 x 和 y 轴上显示 ggplots 的好方法

来自分类Dev

如何根据一个变量(R)通过ggplot绘制线和点?

来自分类Dev

如何使用ggplot绘制R中一个变量的方程式变化值

来自分类Dev

R-两个如何在图的中间对齐两个y轴和零

来自分类Dev

将绘制的条形图从两个图重新排列为R中的三个不同图

来自分类Dev

R ggplot仅针对不同的x值生成一个箱形图

来自分类Dev

如何使用ggplot2在R中的2-y轴图的两个轴上添加千位分隔符

来自分类Dev

如何使用ggplot2在R中的2-y轴图的两个轴上添加千位分隔符

来自分类Dev

R ggplot,两个刻度一起

来自分类Dev

R ggplot,两个刻度一起

来自分类Dev

R ggplot:一张图中的两个直方图(基于两个不同的列)

Related 相关文章

  1. 1

    r-在ggplot中用一个x轴绘制两个图(3个变量)

  2. 2

    R在ggplot中绘制两个箱形图之一

  3. 3

    如何在两个变量(r中的两个y轴图)上添加趋势线?

  4. 4

    如何在两个变量(r中的两个y轴图)上添加趋势线?

  5. 5

    R ggplot2-在一个具有不同x轴范围的图中绘制多个函数

  6. 6

    在ggplot(R)上显示两个平行轴

  7. 7

    如何基于R中的两个分类变量创建一个新变量?

  8. 8

    通过R中的多个条件将一个变量转换为两个变量

  9. 9

    在R中使用ggplot2创建两个变量的有向箭头图

  10. 10

    如何在R中的x轴上使用两个分类变量制作散点图

  11. 11

    两个类别变量的R条形图

  12. 12

    R ggplot2-在同一图中绘制年份变量一个在另一个上

  13. 13

    R ggplot2-在同一图中绘制年份变量一个在另一个上

  14. 14

    如何用R中的两个因素总结一个数值变量

  15. 15

    用R中的两个变量创建一个“ by”循环

  16. 16

    如何用R中的两个因素总结一个数值变量

  17. 17

    R - 如何制作一个雷达图矩阵,每个图表中有两个图。

  18. 18

    R水平条形图,带有在两个轴之间分割的轴标签

  19. 19

    R:在另一个 ggplot 的 x 和 y 轴上显示 ggplots 的好方法

  20. 20

    如何根据一个变量(R)通过ggplot绘制线和点?

  21. 21

    如何使用ggplot绘制R中一个变量的方程式变化值

  22. 22

    R-两个如何在图的中间对齐两个y轴和零

  23. 23

    将绘制的条形图从两个图重新排列为R中的三个不同图

  24. 24

    R ggplot仅针对不同的x值生成一个箱形图

  25. 25

    如何使用ggplot2在R中的2-y轴图的两个轴上添加千位分隔符

  26. 26

    如何使用ggplot2在R中的2-y轴图的两个轴上添加千位分隔符

  27. 27

    R ggplot,两个刻度一起

  28. 28

    R ggplot,两个刻度一起

  29. 29

    R ggplot:一张图中的两个直方图(基于两个不同的列)

热门标签

归档