2つのグラフタイプ(面積と線)を別々の凡例を持つ1つのグラフにプロットします

hmhensen

問題の解決策を探しましたが、私の質問に直接答える解決策を見つけることができませんでした。たとえば、私が見たのは、ggplot2の棒グラフ折れ線グラフ(2軸)と、1つのプロットの棒グラフ+折れ線グラフをGGPlotや他のいくつかのプロットと組み合わせたものです。 mに着きます。

1つの面積プロットと1つの折れ線プロットの2つのプロットでグラフを作成しようとしています。2つのプロットはy軸を共有します。長いデータフレーム形式と広いデータフレーム形式の両方を使用しようとしていますが、凡例を作成しながらグラフを機能させることができません凡例を取得するには、通常、長い形式を使用し、変数キーをcolor =またはとして指定する必要があることを知っていますが、fill =各変数を別々のプロットタイプにしたいので、これを行う方法がわかりません。

必要なグラフを正常に作成しましたが、凡例が含まれておらず、コードが不格好なようです。誰かがいくつかのガイダンスを提供できますか?私の試みについては、以下を参照してください。以下のデータは例です。

試行1:ロングフォーマット

library(tidyverse)
growthUR_long %>% 
  ggplot(aes(x = Date)) + 
  geom_area(data = (. %>% filter(growthUR_long$Type == "Growth")), aes(y = value), fill = "blue", color = "black") +
  labs(x = "Date", y = "Percent") + 
  geom_line(data = (. %>% filter(growthUR_long$Type == "UR")), aes(y = value), color = "black")

長い出力

試み2:ワイドフォーマット

growthUR_wide %>%  
  ggplot(aes(x = Date)) + 
  geom_area(aes(y = Growth), fill = "blue", color = "black") +
  labs(x = "Date", y = "Percent") + 
  geom_line(aes(y = UR), color = "black")

ワイド出力

データ

growthUR_long <- structure(list(Date = structure(c(16040, 16040, 16071, 16071, 
16102, 16102, 16130, 16130, 16161, 16161, 16191, 16191, 16222, 
16222, 16252, 16252, 16283, 16283, 16314, 16314, 16344, 16344, 
16375, 16375, 16405, 16405, 16436, 16436, 16467, 16467, 16495, 
16495, 16526, 16526, 16556, 16556, 16587, 16587, 16617, 16617, 
16648, 16648, 16679, 16679, 16709, 16709, 16740, 16740, 16770, 
16770, 16801, 16801, 16832, 16832, 16861, 16861, 16892, 16892, 
16922, 16922, 16953, 16953, 16983, 16983, 17014, 17014, 17045, 
17045, 17075, 17075, 17106, 17106, 17136, 17136, 17167, 17167, 
17198, 17198, 17226, 17226, 17257, 17257, 17287, 17287, 17318, 
17318, 17348, 17348, 17379, 17379, 17410, 17410, 17440, 17440, 
17471, 17471, 17501, 17501, 17532, 17532, 17563, 17563, 17591, 
17591, 17622, 17622, 17652, 17652, 17683, 17683, 17713, 17713, 
17744, 17744, 17775, 17775, 17805, 17805, 17836, 17836), class = "Date"), 
    Type = c("Growth", "UR", "Growth", "UR", "Growth", "UR", 
    "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR", "Growth", "UR", "Growth", "UR", "Growth", 
    "UR", "Growth", "UR"), value = c(0.0322086110094131, 0.0884577488042408, 
    0.0329947909338724, 0.0867061999760205, 0.0369791049661803, 
    0.0851919078232827, 0.0355169985403396, 0.0862978396964806, 
    0.0396692395382414, 0.0816915271432576, 0.0403342630003154, 
    0.08139558480318, 0.0353677807163653, 0.0801250617385394, 
    0.0348174892816639, 0.079246182084833, 0.0421586821845255, 
    0.0775132293815652, 0.045497159757506, 0.0762505497421263, 
    0.0479855163519212, 0.0756443010441955, 0.0431645807500451, 
    0.075679052359729, 0.0461836867149323, 0.0744676156513522, 
    0.0458201746505216, 0.0729279736217616, 0.0433054752282878, 
    0.0721403911270975, 0.0436767425553533, 0.070408204935737, 
    0.0405882652967209, 0.0703511470179263, 0.0391375049579188, 
    0.0690899407055714, 0.0393839156918634, 0.0690807060415389, 
    0.040776372038464, 0.0684442282747515, 0.0373001234501384, 
    0.0675339627652226, 0.0354219436836223, 0.0672348391519624, 
    0.0356159068524273, 0.0656551851245833, 0.039641088863388, 
    0.0647037939841651, 0.0399609996985248, 0.0635515287191864, 
    0.0317013278193472, 0.0630723444645541, 0.0328512011800204, 
    0.0620325823861175, 0.0327218554890207, 0.0614388558423061, 
    0.0334585785814081, 0.0609839998459472, 0.0308070913309046, 
    0.0597535514359257, 0.0338149386881423, 0.0591362192249516, 
    0.040317092357782, 0.0588051370066046, 0.034759613402543, 
    0.0566379922660853, 0.0394899239434814, 0.0563870883959305, 
    0.0314090340958895, 0.056679569373787, 0.0299952260614151, 
    0.0557285832378203, 0.0266744499962965, 0.054509993105507, 
    0.0356026530670595, 0.0541931717398106, 0.0342705188801191, 
    0.0539209138078119, 0.0357561213000237, 0.0534049405690803, 
    0.0282430112386445, 0.0538194547588392, 0.0320635214245448, 
    0.0535277334240149, 0.0294972674271483, 0.0532145449540054, 
    0.0254391816585626, 0.0521552584654269, 0.0251735156510164, 
    0.0514311178290782, 0.024173910868835, 0.0513899849245179, 
    0.0272327608151584, 0.0507680778938399, 0.0222257590529378, 
    0.0508044295844716, 0.0270204198555397, 0.0514736110118438, 
    0.0230437398194829, 0.0520862873603839, 0.0267092143066034, 
    0.0518027591652176, 0.0237249157033108, 0.0513989487830691, 
    0.0284997482684342, 0.0508771526917733, 0.0287893153050511, 
    0.0453979456228745, 0.0295347574671514, 0.045531549777798, 
    0.0385321606196869, 0.0454762717198563, 0.0394461559426129, 
    0.0471731715700883, 0.035513049515421, 0.0462938811890929, 
    0.0369998652281156, 0.0456567853126557, 0.0383561097442899, 
    0.0456830160674887)), row.names = c(NA, -120L), class = c("tbl_df", 
"tbl", "data.frame"))

growthUR_wide <- structure(list(Date = structure(c(16040, 16071, 16102, 16130, 
16161, 16191, 16222, 16252, 16283, 16314, 16344, 16375, 16405, 
16436, 16467, 16495, 16526, 16556, 16587, 16617, 16648, 16679, 
16709, 16740, 16770, 16801, 16832, 16861, 16892, 16922, 16953, 
16983, 17014, 17045, 17075, 17106, 17136, 17167, 17198, 17226, 
17257, 17287, 17318, 17348, 17379, 17410, 17440, 17471, 17501, 
17532, 17563, 17591, 17622, 17652, 17683, 17713, 17744, 17775, 
17805, 17836), class = "Date"), Growth = c(0.0322086110094131, 
0.0329947909338724, 0.0369791049661803, 0.0355169985403396, 0.0396692395382414, 
0.0403342630003154, 0.0353677807163653, 0.0348174892816639, 0.0421586821845255, 
0.045497159757506, 0.0479855163519212, 0.0431645807500451, 0.0461836867149323, 
0.0458201746505216, 0.0433054752282878, 0.0436767425553533, 0.0405882652967209, 
0.0391375049579188, 0.0393839156918634, 0.040776372038464, 0.0373001234501384, 
0.0354219436836223, 0.0356159068524273, 0.039641088863388, 0.0399609996985248, 
0.0317013278193472, 0.0328512011800204, 0.0327218554890207, 0.0334585785814081, 
0.0308070913309046, 0.0338149386881423, 0.040317092357782, 0.034759613402543, 
0.0394899239434814, 0.0314090340958895, 0.0299952260614151, 0.0266744499962965, 
0.0356026530670595, 0.0342705188801191, 0.0357561213000237, 0.0282430112386445, 
0.0320635214245448, 0.0294972674271483, 0.0254391816585626, 0.0251735156510164, 
0.024173910868835, 0.0272327608151584, 0.0222257590529378, 0.0270204198555397, 
0.0230437398194829, 0.0267092143066034, 0.0237249157033108, 0.0284997482684342, 
0.0287893153050511, 0.0295347574671514, 0.0385321606196869, 0.0394461559426129, 
0.035513049515421, 0.0369998652281156, 0.0383561097442899), UR = c(0.0884577488042408, 
0.0867061999760205, 0.0851919078232827, 0.0862978396964806, 0.0816915271432576, 
0.08139558480318, 0.0801250617385394, 0.079246182084833, 0.0775132293815652, 
0.0762505497421263, 0.0756443010441955, 0.075679052359729, 0.0744676156513522, 
0.0729279736217616, 0.0721403911270975, 0.070408204935737, 0.0703511470179263, 
0.0690899407055714, 0.0690807060415389, 0.0684442282747515, 0.0675339627652226, 
0.0672348391519624, 0.0656551851245833, 0.0647037939841651, 0.0635515287191864, 
0.0630723444645541, 0.0620325823861175, 0.0614388558423061, 0.0609839998459472, 
0.0597535514359257, 0.0591362192249516, 0.0588051370066046, 0.0566379922660853, 
0.0563870883959305, 0.056679569373787, 0.0557285832378203, 0.054509993105507, 
0.0541931717398106, 0.0539209138078119, 0.0534049405690803, 0.0538194547588392, 
0.0535277334240149, 0.0532145449540054, 0.0521552584654269, 0.0514311178290782, 
0.0513899849245179, 0.0507680778938399, 0.0508044295844716, 0.0514736110118438, 
0.0520862873603839, 0.0518027591652176, 0.0513989487830691, 0.0508771526917733, 
0.0453979456228745, 0.045531549777798, 0.0454762717198563, 0.0471731715700883, 
0.0462938811890929, 0.0456567853126557, 0.0456830160674887)), row.names = c(NA, 
-60L), class = c("tbl_df", "tbl", "data.frame"))
PoGibas

ワイドフォーマットを使用してfillcolor内でを指定できますaes次に、必要な色(「青」、「黒」)を取得することができscale_(fill/color)_manualます。

ggplot(growthUR_wide, aes(Date)) + 
    geom_area(aes(y = Growth, fill = "Growth"), color = "black") +
    geom_line(aes(y = UR, color = "UK"), size = 1.5) +
    labs(x = "Date", 
         y = "Percent", 
         fill = NULL, 
         color = NULL) +
    scale_color_manual(values = "black") +
    scale_fill_manual(values = "blue") +
    theme_classic()

ここに画像の説明を入力してください


より興味深い解決策(データ視覚化の観点からはもっと正しいかもしれません)は、プロットに注釈を追加することです(色の選択はあまり得意ではないので、何が最適かを自分で決めることができます)。

このソリューションでは、レイヤーにgeom_text。で注釈を付けます

ggplot(growthUR_wide, aes(Date)) + 
    geom_area(aes(y = Growth), color = "black", fill = "thistle2") +
    geom_text(aes(growthUR_wide$Date[6], 0.02, label = "Growth"), 
              data.frame(), size = 10, color = "navyblue") +
    geom_text(aes(growthUR_wide$Date[15], 0.08, label = "UK"), 
              data.frame(), size = 10, color = "black") +
    geom_line(aes(y = UR), size = 1.5) +
    labs(x = "Date", 
         y = "Percent") +
    theme_classic()

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Rに2つの別々の列の値を持つggplot折れ線グラフをプロットします

分類Dev

2つの異なるデータフレームを使用して、積み上げ面積プロットにラインプロットを課します

分類Dev

複数の変数を持つ2つの異なる列の合計と頻度を計算し、面グラフを使用してプロットします

分類Dev

R(ggplotではない)の1つのプロットに1つの折れ線グラフと棒グラフを配置しますか?

分類Dev

2つのデータフレームを1つの棒グラフにプロットし、それらの値を区別します

分類Dev

1つのグラフに2つのデータセットをプロット+ MATPLOTLIBに線形回帰

分類Dev

同じグラフ上に別々の凡例を持つ複数の行を持つRggplotヒートマップ

分類Dev

複数の異なるタイプのggplotを1つのグラフにプロットします

分類Dev

MATLAB:1つのグラフに複数の線を異なる色でプロットし、凡例を付けます。

分類Dev

Pythonで3つのグラフを上軸に2つ、下軸に1つプロットしますか?

分類Dev

Cとgnuplotを使用して1つのグラフに2つ以上のプロットを印刷する方法

分類Dev

2つの異なる年の.resample(D).size()を1つのグラフにプロットしますか?

分類Dev

2 つの散布図を 1 つのグラフにプロットする

分類Dev

グラフの下に凡例をプロットし、ggplot2の凡例の上に凡例のタイトルをプロットします

分類Dev

共通のY軸に2つの折れ線グラフをプロットします

分類Dev

1つの画像の1つのデータフレームから多くの折れ線グラフをプロットします

分類Dev

異なるグラフを使用して、2つのデータフレームのデータを1つのプロットに結合します

分類Dev

Matplotlibで1つの凡例と削除されたy軸タイトルを使用してMxN円グラフプロットを作成する方法

分類Dev

1つのグラフに複数のx、yデータのセットをプロットします

分類Dev

2つのデータフレームを1つのグラフにプロットする

分類Dev

Chart js:2つのデータセットを持つ折れ線グラフを更新します

分類Dev

ggplot2の1つのグラフ内の2つの凡例をカスタマイズします

分類Dev

Rを使用して1つのプロット内の行ごとにグラフをプロットする

分類Dev

ggplot2を使用して、データをサブセット化し、折れ線グラフに2つの変数をプロットします。

分類Dev

ggplotを使用して、異なるラベルのグループ化されたデータの1つのグラフに2つの折れ線グラフをプロットする

分類Dev

Rを使用して1つのレイアウト/面/グリッド内に4つのマップ(2 * 2)をプロットしているときに、「plot.new()のエラー:プロット領域が大きすぎます」

分類Dev

2つの別々に計算された線で海のラインプロットの凡例を作成する方法

分類Dev

2つの別々に計算された線で海のラインプロットの凡例を作成する方法

分類Dev

ggplot2で2つのy軸を使用して同じグラフに2つの変数を線としてプロットする

Related 関連記事

  1. 1

    Rに2つの別々の列の値を持つggplot折れ線グラフをプロットします

  2. 2

    2つの異なるデータフレームを使用して、積み上げ面積プロットにラインプロットを課します

  3. 3

    複数の変数を持つ2つの異なる列の合計と頻度を計算し、面グラフを使用してプロットします

  4. 4

    R(ggplotではない)の1つのプロットに1つの折れ線グラフと棒グラフを配置しますか?

  5. 5

    2つのデータフレームを1つの棒グラフにプロットし、それらの値を区別します

  6. 6

    1つのグラフに2つのデータセットをプロット+ MATPLOTLIBに線形回帰

  7. 7

    同じグラフ上に別々の凡例を持つ複数の行を持つRggplotヒートマップ

  8. 8

    複数の異なるタイプのggplotを1つのグラフにプロットします

  9. 9

    MATLAB:1つのグラフに複数の線を異なる色でプロットし、凡例を付けます。

  10. 10

    Pythonで3つのグラフを上軸に2つ、下軸に1つプロットしますか?

  11. 11

    Cとgnuplotを使用して1つのグラフに2つ以上のプロットを印刷する方法

  12. 12

    2つの異なる年の.resample(D).size()を1つのグラフにプロットしますか?

  13. 13

    2 つの散布図を 1 つのグラフにプロットする

  14. 14

    グラフの下に凡例をプロットし、ggplot2の凡例の上に凡例のタイトルをプロットします

  15. 15

    共通のY軸に2つの折れ線グラフをプロットします

  16. 16

    1つの画像の1つのデータフレームから多くの折れ線グラフをプロットします

  17. 17

    異なるグラフを使用して、2つのデータフレームのデータを1つのプロットに結合します

  18. 18

    Matplotlibで1つの凡例と削除されたy軸タイトルを使用してMxN円グラフプロットを作成する方法

  19. 19

    1つのグラフに複数のx、yデータのセットをプロットします

  20. 20

    2つのデータフレームを1つのグラフにプロットする

  21. 21

    Chart js:2つのデータセットを持つ折れ線グラフを更新します

  22. 22

    ggplot2の1つのグラフ内の2つの凡例をカスタマイズします

  23. 23

    Rを使用して1つのプロット内の行ごとにグラフをプロットする

  24. 24

    ggplot2を使用して、データをサブセット化し、折れ線グラフに2つの変数をプロットします。

  25. 25

    ggplotを使用して、異なるラベルのグループ化されたデータの1つのグラフに2つの折れ線グラフをプロットする

  26. 26

    Rを使用して1つのレイアウト/面/グリッド内に4つのマップ(2 * 2)をプロットしているときに、「plot.new()のエラー:プロット領域が大きすぎます」

  27. 27

    2つの別々に計算された線で海のラインプロットの凡例を作成する方法

  28. 28

    2つの別々に計算された線で海のラインプロットの凡例を作成する方法

  29. 29

    ggplot2で2つのy軸を使用して同じグラフに2つの変数を線としてプロットする

ホットタグ

アーカイブ