ggplot2の1つのバーにレインボーグラデーションを追加する

ジョン・トーマス

だから私は次のようなdfを持っています:

colour_clicks <- structure(list(Color = c("beige", "black", "blue", "brown", "burgundy", 
"gray", "green", "navy blue", "of many colors", "olive", "pink", 
"red", "violet", "white"), avg = c(1.6799741044454, 2.48696524064171, 
2.67327546825034, 1.94043703007519, 1.26768060836502, 1.94480302693078, 
1.47427101200686, 1.09180327868852, 1.90684892897407, 1.11425902864259, 
1.35, 1.48054996646546, 1.49029356060606, 2.02322924600152)), row.names = c(NA, 
14L), class = c("tbl_df", "tbl", "data.frame"))

そして、これらの平均を説明するために棒グラフを作成したいのですが、2つの問題があります。

  1. レインボーグラデーションにしたい「色とりどりの」バーがありますが、これは1本のバーで可能ですか?
  2. 各バーを特定の色にしたいのですが、このようにしたとき、それらは一列に並んでいません。再注文機能によるものだと思いますが、何かアイデアはありますか?
ggplot(colour_clicks, aes(x = reorder(Color, -avg), y=avg, fill=Color)) +
  geom_bar(stat="identity", color = "black")+
  scale_fill_manual(values=c(
                             "blue",
                             "black",
                             "white",
                             "gray",
                             "brown",
                             "orange",
                             "beige",
                             "violet",
                             "red",
                             "green",
                             "pink",
                             "orangered4",
                             "olivedrab",
                             "navyblue"
                             )) +
  theme(legend.position = "none")
チャーリー・ギャラガー

(2)の場合、指定した塗りつぶし変数はですColorが、x軸変数はreorder(Color)であるため、同じ変数に変更する必要があります。ggplotこの種の問題を回避するために、電話の前に並べ替えることをお勧めします。


colour_clicks %>% 
  mutate(Color = reorder(Color, desc(avg))) %>%   # reorder here, not within ggplot call
  ggplot(aes(x = Color, y=avg, fill=Color)) +
  geom_bar(stat="identity", color = "black")+
  scale_fill_manual(values=c(
    "blue",
    "black",
    "white",
    "gray",
    "brown",
    "orange",
    "beige",
    "violet",
    "red",
    "green",
    "pink",
    "orangered4",
    "olivedrab",
    "navyblue"
  )) +
  theme(legend.position = "none")

新しいバーの注文

(1)の場合、独自のグラデーションバーを作成する以外にこれを行うための優れた方法はありません。基本的な方法は、ゼロからの値までのシーケンスを作成しavg、それを使用してcolorRamp()。でグラデーションを生成することです。残念ながら、これはR、G、Bを別々に出力するため、16進数に変換する必要があります。しかし、それほど悪くはありません。ここにあります。

# Make the gradient
max_y <- colour_clicks$avg[colour_clicks$Color == "of many colors"]
pal <- c('red', 'orange', 'yellow', 'green', 'blue', 'violet')
color_generator <- colorRamp(pal)

df <- data.frame(
  y = seq(0, max_y, length.out = 100)
) %>% 
  mutate(
    R = color_generator(y/max_y)[,1],
    G = color_generator(y/max_y)[,2],
    B = color_generator(y/max_y)[,3],
    hexcol = sprintf("#%02x%02x%02x", (round(R, 0)), 
                     (round(G, 0)), 
                     (round(B, 0)))
  )

colour_clicks %>% 
  mutate(Color = reorder(Color, desc(avg))) %>% 
  ggplot(aes(x = Color, y=avg, fill=Color)) +
  geom_bar(stat="identity", color = "black")+
  scale_fill_manual(values=c(
    "blue", "black", "white", "gray", "brown", "orange", "beige", "violet",
    "red", "green", "pink", "orangered4", "olivedrab", "navyblue"
  )) +
  # Overlay the rainbow column on the old column
  geom_col(data = df, aes(x = 6, y = max_y/100, group = 1:100), fill = df$hexcol) +
  theme(legend.position = "none")

レインボーバー付き

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ggplot2の密度プロットにグラデーション塗りつぶしを適用する

分類Dev

ggplot2:連続変数の標準の色のグラデーションを逆にする

分類Dev

1つのフラグメントのアクションバーにアクションボタンを追加する

分類Dev

1つのggplot2に複数のデータライン

分類Dev

コレクションにイベントを追加するためのバックボーンバインディング

分類Dev

ggplot2で2つのエラーバーとポイントグラフをプロットする

分類Dev

ggplot2の棒グラフで1つのグループにエラーバーを作成する

分類Dev

2つのバーボタンアイテムを使用してナビゲーションバーに戻るボタンを追加する

分類Dev

ggplot2で図形を色のグラデーションで塗りつぶす方法

分類Dev

カメラからのビデオにアニメーション オーバーレイを追加する

分類Dev

1つのggplot2マップ上の2つの別々のカラーグラデーションカラースケール

分類Dev

1つのggplot2マップ上の2つの別々のカラーグラデーションカラースケール

分類Dev

ggplot2のグラデーション入力

分類Dev

1つのキーフレームに2つのアニメーションを追加する方法

分類Dev

CollectionViewセル内の画像にグラデーションレイヤーを追加する方法

分類Dev

ggplot2のカウントデータを使用してヒストグラムに密度線を追加する

分類Dev

グループごとのggplot2カラーグラデーション

分類Dev

ggplot2のscale_fill-ggplotのリスト内のすべてのプロットにグラデーションカラーを作成します

分類Dev

2つの異なるカラーデザインを作成するためのCSSグラデーション

分類Dev

バックボーン-イベント:モデルの配列をコレクションに追加します

分類Dev

ggplotで、stat_bin2dの2つの凡例(「グラデーション」タイプ)を取得するにはどうすればよいですか?

分類Dev

別の変数に依存するグラデーションカラーを持つグループ化されたggplotバー

分類Dev

ggplotの各長方形に同じグラデーションを追加します

分類Dev

画像上にグラデーション オーバーレイを作成する

分類Dev

バックボーンjsのulにコレクションを追加する

分類Dev

R:ggplot2のPCAバイプロットにキャリブレーションされた軸を追加します

分類Dev

ボディタグ内のナビゲーションバーをレンダリングするレール

分類Dev

ボディタグ内のナビゲーションバーをレンダリングするレール

分類Dev

ggplot2グラフに2つのソースキャプションを含めるにはどうすればよいですか?

Related 関連記事

  1. 1

    ggplot2の密度プロットにグラデーション塗りつぶしを適用する

  2. 2

    ggplot2:連続変数の標準の色のグラデーションを逆にする

  3. 3

    1つのフラグメントのアクションバーにアクションボタンを追加する

  4. 4

    1つのggplot2に複数のデータライン

  5. 5

    コレクションにイベントを追加するためのバックボーンバインディング

  6. 6

    ggplot2で2つのエラーバーとポイントグラフをプロットする

  7. 7

    ggplot2の棒グラフで1つのグループにエラーバーを作成する

  8. 8

    2つのバーボタンアイテムを使用してナビゲーションバーに戻るボタンを追加する

  9. 9

    ggplot2で図形を色のグラデーションで塗りつぶす方法

  10. 10

    カメラからのビデオにアニメーション オーバーレイを追加する

  11. 11

    1つのggplot2マップ上の2つの別々のカラーグラデーションカラースケール

  12. 12

    1つのggplot2マップ上の2つの別々のカラーグラデーションカラースケール

  13. 13

    ggplot2のグラデーション入力

  14. 14

    1つのキーフレームに2つのアニメーションを追加する方法

  15. 15

    CollectionViewセル内の画像にグラデーションレイヤーを追加する方法

  16. 16

    ggplot2のカウントデータを使用してヒストグラムに密度線を追加する

  17. 17

    グループごとのggplot2カラーグラデーション

  18. 18

    ggplot2のscale_fill-ggplotのリスト内のすべてのプロットにグラデーションカラーを作成します

  19. 19

    2つの異なるカラーデザインを作成するためのCSSグラデーション

  20. 20

    バックボーン-イベント:モデルの配列をコレクションに追加します

  21. 21

    ggplotで、stat_bin2dの2つの凡例(「グラデーション」タイプ)を取得するにはどうすればよいですか?

  22. 22

    別の変数に依存するグラデーションカラーを持つグループ化されたggplotバー

  23. 23

    ggplotの各長方形に同じグラデーションを追加します

  24. 24

    画像上にグラデーション オーバーレイを作成する

  25. 25

    バックボーンjsのulにコレクションを追加する

  26. 26

    R:ggplot2のPCAバイプロットにキャリブレーションされた軸を追加します

  27. 27

    ボディタグ内のナビゲーションバーをレンダリングするレール

  28. 28

    ボディタグ内のナビゲーションバーをレンダリングするレール

  29. 29

    ggplot2グラフに2つのソースキャプションを含めるにはどうすればよいですか?

ホットタグ

アーカイブ