使用ggplot facet_grid()绘制不同的y轴比例?

使用ggplot facet_grid()绘制不同的y轴比例?,r,ggplot2,scale,gridextra,facet-grid,R,Ggplot2,Scale,Gridextra,Facet Grid,我在将一些数据绘制到两个不同的y刻度上时遇到了麻烦。这里是我一直在处理的一些空气质量数据的两个可视化。第一幅图以十亿分之一的y比例描绘了每种污染物。在该图中,co占据y轴的主导地位,其他污染物的变化均未得到正确表示。在空气质量科学中,污染物co通常用百万分之一表示,而不是十亿分之一。第二个图显示了相同的no、no2和o3数据,但我已将co浓度从ppb转换为ppm(除以1000)。然而,虽然no、no2和o3看起来更好,但是co的变化并没有得到正确的表示 是否有一种简单的方法可以使用ggplot(

我在将一些数据绘制到两个不同的y刻度上时遇到了麻烦。这里是我一直在处理的一些空气质量数据的两个可视化。第一幅图以十亿分之一的y比例描绘了每种污染物。在该图中,
co
占据y轴的主导地位,其他污染物的变化均未得到正确表示。在空气质量科学中,污染物co通常用百万分之一表示,而不是十亿分之一。第二个图显示了相同的
no
no2
o3
数据,但我已将
co
浓度从
ppb
转换为
ppm
(除以1000)。然而,虽然
no
no2
o3
看起来更好,但是
co
的变化并没有得到正确的表示

是否有一种简单的方法可以使用
ggplot()
标准化y轴的比例并最好地表示每种类型的污染物?我还尝试通过其他一些例子,利用gridExtra将两个单独的图缝合在一起,每个图都保留了它们原来的y比例

生成这些数字所需的数据是巨大的(26295次观察),因此我仍在研究一个可复制的示例。希望可以在下面描述的
ggplot()
代码中找到解决方案:

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


马吕斯指出,在
facet\u grid()
函数中包含
scales=“free\u y”
将提供所需的输出。谢谢

解决方案:

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

plt
facet\u grid(…,scales=“free\u y”)
允许每行具有不同的y比例,但您可能需要切换行/列faceting,如
facet\u grid(pollutant~id,scales=“free\u y”)
您可以将解决方案作为答案,而不是添加到问题中,然后您可以将其标记为已解决。好的,我会这样做。我不确定这是否合乎犹太教,因为从技术上讲,马吕斯是回答这个问题的人。
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