多个并排的条形图,包括2个y轴(ggplot或base R)

时间:2017-02-25 03:27:26

标签: r ggplot2 graphics bar-chart

具有2个y轴的多个并排条形图的描述

我想使用下面提供的数据生成一个条形图(见下文),其中包含两个变量的2 y轴: -

  1. 一个 T.max.open ,其中列 Open_Site
  2. T.max.canopy 一个,其中列 Under_Tree
  3. x轴应命名为地形(即人工表面裸土,<在 Open_Site Under_Tree 的两列中找到strong> Litter Undergrowth
  4. 每个地形组应该有2个彼此相邻的条形图,表示不同植被类型在露天场地( Open_Site )和树冠层下面的温度范围( Under_Tree )。

    我不能使用一个y轴,因为我想显示树冠下温度之间的关系( y轴1 - T.max.canopy )并在露天场地( y轴2 - T.max.open )中观察温度是否会影响微气候中植物群落的大小和多样性

    条形图看起来应该与我针对不同问题制作的Barplot(下面)类似。我只是想不通如何解决这个问题。

    这是否可以使用基础R(首选)?

    谢谢,如果有人可以提供帮助。

    问题

    我尝试使用 melt()和cast()等函数将数据格式化为正确的格式,但我也尝试在线搜索我发现了几个解决方案,但似乎没有适用于我的情况。例如,两个堆栈溢出问题Stack Overflow 1Stack Overflow 2

    enter image description here

    数据

        structure(list(Under_Tree = structure(c(2L, 2L, 2L, 3L, 1L, 3L, 
        2L, 2L, 2L, 3L, 1L, 3L, 2L, 2L, 3L, 1L, 3L, 2L, 2L, 3L), .Label =      c("Artificial_Surface", 
        "Litter", "Undergrowth"), class = "factor"), Open_Site =      structure(c(2L, 
         3L, 1L, 3L, 2L, 2L, 2L, 2L, 3L, 1L, 3L, 2L, 2L, 3L, 1L, 3L, 2L, 
         2L, 3L, 1L), .Label = c("Artificial_Surface", "Litter",      "Undergrowth"
         ), class = "factor"), T.max.canopy = c(10, 14, 11.4, 7.7, 23.8, 
         12.9, 8, 15, 18.3, 9, 22.7, 12, 24.9, 11.2, 7.9, 4.5, 5.6, 13.7, 
         15.9, 16.4), T.max.open = c(8, 15, 18.3, 9, 22.7, 12, 17.4, 13, 
         17.9, 16.6, 14.6, 18.3, 27.5, 14.1, 17.5, 15.4, 13, 15.1, 15.1, 
          19.7)), .Names = c("Under_Tree", "Open_Site", "T.max.canopy", 
         "T.max.open"), class = "data.frame", row.names = c(NA, -20L))
    

1 个答案:

答案 0 :(得分:2)

抱歉在你的树冠上下雨,但我觉得这些条形图不是你美丽数据的最佳代表。在我看来,它们最好用散点图表示,并结合刻面和颜色,故事可以非常有效地讲述。看看你是否同意:

mysql

enter image description here