2017-09-13 35 views
1

私はいくつかのデータを2つの別々のyスケールにプロットするのに苦労しています。ここで私が取り組んできた大気質データの2つの視覚化があります。最初の図は、各汚染物質を10億分の1の規模で示しています。この図では、coがy軸を支配しており、他の汚染物質のバリエーションは正しく表現されていません。大気質科学の中では、汚染物質coは、従来、10億分の1の代わりに100万分の1で表されている。 2番目の図は同じno,no2、およびo3のデータを示していますが、ppbからppm(1000で割る)の濃度に変換しました。 、coのばらつきを正当に表現されていないよく見えるo3no2noながら、そしてただし、...ggplot facet_grid()を使って異なるy軸スケーリングをプロットする?

は、y軸のスケールを正規化し、最高の各タイプを表すためにggplot()を使用して簡単な方法はあります汚染物質? gridExtraを使用して2つの別々のプロットをつなぎ合わせ、それぞれオリジナルのyスケールを保持する他のいくつかの例を試してみたいと思います。

これらの数字を生成するために必要なデータは膨大であり(26,295回の観測)、私はまだ再現可能な例に取り組んでいます。ここhead(df)は(ppmまでco変換前)のようになります

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

    date id pollutant value 
1 2017-06-16 10:00:00 Pohl  co 236.00 
2 2017-06-16 10:00:00 Pohl  no 23.06 
3 2017-06-16 10:00:00 Pohl  no2 12.05 
4 2017-06-16 10:00:00 Pohl  o3 8.52 
5 2017-06-16 11:00:00 Pohl  co 207.00 
6 2017-06-16 11:00:00 Pohl  no 20.82 

Figure 1

Figure 2

願わくは溶液は、以下に記載 ggplot()コード内に見出すことができます
+6

'facet_grid(...、= "free_y" スケールが)'各行は異なるY軸を持つことができ(facet_grid(pollutant〜id、scales = "free_y") ' – Marius

+1

のような行/列ファセットを切り替える必要があるかもしれません。あなたは答えをiあなたの質問には、あなたはそれを解決済みとしてマークすることができます。 – aosmith

+0

さて、私はそれをやるでしょう。マリウスが技術的に質問に答えてくれて以来、それが正直であったかどうかはわかりませんでした。 – spacedSparking

答えて

1

マリウスはそれを指摘しました関数内の210が望ましい出力を提供します。ありがとう!

対処:

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 

出力:

enter image description here

関連する問題