使用ggplot facet_grid()绘制不同的y轴缩放?

时间:2017-09-13 01:01:31

标签: r ggplot2 scale gridextra facet-grid

我在将一些数据绘制到两个单独的y尺度上时遇到了麻烦。以下是我一直在使用的一些空气质量数据的两个可视化。第一幅图描绘了每十亿分之几的每种污染物。在这个图中,co支配y轴,没有其他污染物'变异得到了恰当的体现。在空气质量科学中,污染物co通常以百万分之一而不是十亿分之一表示。第二张图说明了相同的nono2o3数据,但我已将co浓度从ppb转换为{{1} (除以1000)。但是,虽然ppmnono2看起来更好,但o3中的变体并未得到恰当的表达......

是否有一种简单的方法可以使用co来标准化y轴的比例并最好地代表每种类型的污染物?我还试图通过一些其他的例子,这些例子利用gridExtra将两个单独的图拼接在一起,每个图都保留了原始的y尺度。

生成这些数字所需的数据非常庞大(26,295次观测),因此我仍然在研究一个可重现的例子。希望在下面描述的ggplot()代码中找到解决方案:

ggplot()

这里是plt <- ggplot(df, aes(x=date, y = value, color = pollutant)) + geom_point() + facet_grid(id~pollutant, labeller = label_both, switch = "y") plt 的样子(在将head(df)转换为ppm之前):

co

Figure 1

Figure 2

1 个答案:

答案 0 :(得分:1)

Marius指出,在scales = "free_y"函数中包含facet_grid()将提供所需的输出。谢谢!

<强>解决方案:

plt <- ggplot(df, aes(x=date, y = value, color = pollutant)) + 
geom_point() + 
facet_grid(pollutant~id, scales = "free_y", labeller = label_both, switch = "y")
plt

<强>输出:

Two's complement