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

M--

ggplots呼ばれるオブジェクト格納されているリストを作成します。これがg.aプロットを再現するためのコードです(データは下部にあります)。

私はおそらく、問題を単純で複雑にしすぎているものを見逃していることに注意する価値があります。

RCfitter <- function(w,h,a,b){(a * ((w + h)^b))}

fillfactor <- lapply(seq_len(length(dat.a)), function(i) {
              as.factor((gsub("-.*","",dat.a[[i]]$Date)))}) #I tried as.integer as well

set.seed(92)
lin.a <- lapply(seq_len(length(dat.a)), function(i) {
                          data.frame(x = runif(100, -dB.coef.a[3,i],
                          max(dat.a[[i]]$WL)+diff(0.2*range(dat.a[[i]]$Q))))})

library(ggplot2)

g.a <- lapply(seq_len(length(dat.a)), function(i) {
ggplot() + 
geom_point(data=dat.a[[i]], aes(x=WL,y=Q, tltip = Date,
fill =fillfactor[[i]]),
colour = NA, pch=21) + 

scale_fill_manual(breaks = mybreaks, values = myfills)+

geom_line(data = lin.a[[i]], 
          aes(x=x,y= RCfitter(x,dB.coef.a[3,i],dB.coef.a[1,i],dB.coef.a[2,i])),colour="red")+

xlab("WL") +
ylab("Q") +
ggtitle(paste("pLot ",i)) +
ylim(c(0,(max(dat.a[[i]]$Q)+diff(0.2*range(dat.a[[i]]$Q))))) +
xlim(c(0,(max(dat.a[[i]]$WL)+diff(0.2*range(dat.a[[i]]$WL))))) +
theme(legend.position="none")
                              })

無視すると、scale_fillそれらをプロットでき、「カラフルな」プロットが得られます。しかし、それで私はこの警告を受け取ります:

g.a[[2]]

##  Warning messages:
##  1: Removed 6 rows containing missing values (geom_point). 
##  2: Removed 64 rows containing missing values (geom_path).

つまり、geom_point何もプロットしません。

、などを使用しましたがscale_fill_discreteまたはその逆のscale_fill_continuousようなエラーが発生しdiscrete value to continuous scaleます。

私が本当に望んでいるの、たとえば青から赤まで、何年にもわたっグラデーションカラーを作成することです。これにより、同じ場所の周りに同じような年(60年代など)のチャンクがあるかどうかを確認しながら、年を区別できます。

PS最後に、私は使用していますggplotly()(例ggplotly(g.a[[2]],tooltip = c("x","y","tltip"))。したがって、それによってscale_fill(たとえば、指定した色の一部が無効になるplotlyの動作が変わる場合は、そのことを念頭に置いてください。

サンプルデータ:

dat.a

 dat.a <- list(structure(list(Date = c("1974-02-14", "1974-02-16", "1974-02-28",
     "1974-02-28", "1974-02-28", "1974-02-28"), WL = c(0.24, 0.135, 
     0.395, 0.26, 0.22, 0.31), Q = c(0.237, 0.04, 0.9, 0.36, 0.52,           
     0.56), Velocity = c(0.3, 0.103, 0.367, 0.209, 0.34, 0.276), Area = c(0.79, 
     0.388, 2.452, 1.722, 1.529, 2.029), Flag = c(NA_character_, NA_character_, 
     NA_character_, NA_character_, NA_character_, NA_character_), 
         Shift = c("/", "/", "/", "/", "/", "/"), date = structure(c(130032000,  
         130204800, 131241600, 131241600, 131241600, 131241600), class = c("POSIXct",  
         "POSIXt"), tzone = "UTC")), .Names = c("Date", "WL", "Q",  
     "Velocity", "Area", "Flag", "Shift", "date"), row.names = c(NA, 
     -6L), class = c("tbl_df", "tbl", "data.frame")), structure(list(          
         Date = c("1965-01-29", "1965-01-29", "1965-04-25", "1966-11-29",   
         "1967-01-24", "1967-11-12"), WL = c(0.439, 0.439, 0.482,     
         0.463, 0.427, 0.475), Q = c(0.252, 0.269, 0.403, 0.314, 0.199,
         0.4), Velocity = c(0.23, 0.232, 0.316, 0.279, 0.249, 0.36      
         ), Area = c(1.096, 1.159, 1.275, 1.125, 0.799, 1.111), Flag = c(NA_character_,  
         NA_character_, NA_character_, NA_character_, NA_character_,                   
         NA_character_), Shift = c("/", "/", "/", "/", "/", "/"),                      
         date = structure(c(-155347200, -155347200, -147916800, -97545600,    
         -92707200, -67478400), class = c("POSIXct", "POSIXt"), tzone = "UTC")), 
        .Names = c("Date","WL", "Q", "Velocity", "Area", "Flag", "Shift", "date"), 
        row.names = c(NA,-6L), class = c("tbl_df", "tbl", "data.frame"))) 

dB.coef.a

 dB.coef.a <- structure(c(-77.6915945552795, 0.594614568300253, 60.9718752625543, 
     7.96297849987566, 2.69599957356069, -0.183937755444007), .Dim = c(3L,        
     2L), .Dimnames = list(c("a", "b", "h"), NULL))   

mybreaks

 mybreaks <- c(1955, 1956, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 
     1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977,     
     1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988,     
     1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,     
     2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,     
     2011, 2012, 2013, 2014, 2015, 2016, 2017) 

myfills

 myfills <- c("005ABF", "0358BC", "0757B9", "0A56B6", "0E54B3", "1153B0",  
     "1552AD", "1851AA", "1C4FA7", "1F4EA4", "234DA2", "264B9F", "2A4A9C", 
     "2D4999", "314896", "344693", "384590", "3B448D", "3F428A", "424187", 
     "464085", "493F82", "4D3D7F", "503C7C", "543B79", "573976", "5B3873", 
     "5E3770", "62366D", "65346A", "693368", "6D3265", "703062", "742F5F", 
     "772E5C", "7B2D59", "7E2B56", "822A53", "852950", "89274D", "8C264B", 
     "902548", "932445", "972242", "9A213F", "9E203C", "A11E39", "A51D36", 
     "A81C33", "AC1B30", "AF192E", "B3182B", "B61728", "BA1525", "BD1422", 
     "C1131F", "C4121C", "C81019", "CB0F16", "CF0E13", "D30D11")
bVa

私があなたの問題を正しく理解した場合の提案:

1。色付きのエラーメッセージがあります(myfills):

grDevices :: col2rgb(colour、TRUE)のエラー

# 不足している :

mycolors <- paste0("#", myfills) # correct colors
names(mycolors ) <- mybreaks # name your colors
mycolors[names(mycolors) == "1965"] <- "#D30D11" # swapped color to red to check its ok


2.pch = 21 forの「色」が本当に必要ない場合geom_point、より適切に使用しpch = 16fill美学を忘れてcolor代わりに使用します。

g.a <- lapply(seq_len(length(dat.a)), function(i) {
    ggplot(data = dat.a[[i]], aes(x = WL, y = Q, color = fillfactor[[i]])) + 
    geom_point(pch = 16) + 
    scale_color_manual(values = mycolors) +
    geom_line(data = lin.a[[i]], aes(x = x, y = RCfitter(x, dB.coef.a[3,i], dB.coef.a[1,i], dB.coef.a[2,i])), colour = "red") +
    ggtitle(paste("pLot ",i)) +
    ylim(c(0,(max(dat.a[[i]]$Q) + diff(0.2*range(dat.a[[i]]$Q))))) +
    xlim(c(0,(max(dat.a[[i]]$WL) + diff(0.2*range(dat.a[[i]]$WL))))) +
    theme(legend.position="none")
 }
)
g.a[[2]]

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

3.に関する警告メッセージgeom_pathはあなたによるものxlim()です。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Rのggplot2 :: scale_fill_gradient-カスタムカラー

分類Dev

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

分類Dev

AppleWatchフィットネストラッカーの「プログレス」バーを再作成します-CAShapeLayerストロークのグラデーション

分類Dev

デスクトップショートカット(リンク)を作成する方法ですが、C#でプログラムで.lnkの代わりに独自のショートカットファイル拡張子(.appfolderなど)を使用しますか?

分類Dev

ggplot2で複数のscale_fill_manualを使用する

分類Dev

`ggplot2`で複数の` scale_fill_`を使用する

分類Dev

ggplot2の別の要素に基づくscale_fill_manual

分類Dev

データフレーム内の列のデータ型に基づいて、カウントプロットをプロットしたり、ヒストグラムをプロットしたりする関数を作成します

分類Dev

ggplot2のシェープファイルを使用して最初のプロットからscale_fill_colorを保持する方法

分類Dev

すべてのインストールapkファイルのバックアップをAndroidのプログラムでSDカードに作成します

分類Dev

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

分類Dev

InnoSetupすべてのユーザーのすべてのデスクトップに個別のショートカットを作成します

分類Dev

ggplot2を使用して、カプランマイヤープロットの下に「リスクのある数値」テーブルを配置する方法

分類Dev

ggplot2を使用してリッカート尺度の種類のグラフを作成する

分類Dev

ローカルGitリポジトリをすべてのブランチとタグを含む新しいリモートにプッシュします

分類Dev

Entity Framework内のSaveChangesは、データベーストランザクション内のすべての変更をラップしますか

分類Dev

.shと.pngを使用してプログラムのショートカットを作成します

分類Dev

ディレクトリに変更するプログラムへのショートカットを作成します

分類Dev

書き込みブートストラッパーのローカリゼーションを作成します

分類Dev

ggplot2の `scale_fill_manual`でプロットを手動で色付けしても機能しない

分類Dev

Firebaseクラウドメッセージング(FCM)せずに自分のアプリケーションをインストールしたすべてのデバイスにプッシュ通知を作成することが可能ですか?

分類Dev

Rのggplot2を使用して、ビン化されたクラスの連続ラスターデータをプロットします

分類Dev

ggplot2でforループを使用して、データフレーム内に複数のグラフをプロットする

分類Dev

プロットに連続的な色のグラデーションの凡例ストリップを追加する

分類Dev

ループ内のすべての因子に対して特定の因子をプロットする複数の2列の棒グラフを作成します

分類Dev

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

分類Dev

ブートストラップ出力の中央値、信頼区間をggplot2にプロットします

分類Dev

ggplot2のすべてのビンのx値の合計としてyを使用してヒストグラムをプロットする方法

分類Dev

bashスクリプト内のデバッグプログラムを使用してtmuxセッションをデタッチします

Related 関連記事

  1. 1

    Rのggplot2 :: scale_fill_gradient-カスタムカラー

  2. 2

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

  3. 3

    AppleWatchフィットネストラッカーの「プログレス」バーを再作成します-CAShapeLayerストロークのグラデーション

  4. 4

    デスクトップショートカット(リンク)を作成する方法ですが、C#でプログラムで.lnkの代わりに独自のショートカットファイル拡張子(.appfolderなど)を使用しますか?

  5. 5

    ggplot2で複数のscale_fill_manualを使用する

  6. 6

    `ggplot2`で複数の` scale_fill_`を使用する

  7. 7

    ggplot2の別の要素に基づくscale_fill_manual

  8. 8

    データフレーム内の列のデータ型に基づいて、カウントプロットをプロットしたり、ヒストグラムをプロットしたりする関数を作成します

  9. 9

    ggplot2のシェープファイルを使用して最初のプロットからscale_fill_colorを保持する方法

  10. 10

    すべてのインストールapkファイルのバックアップをAndroidのプログラムでSDカードに作成します

  11. 11

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

  12. 12

    InnoSetupすべてのユーザーのすべてのデスクトップに個別のショートカットを作成します

  13. 13

    ggplot2を使用して、カプランマイヤープロットの下に「リスクのある数値」テーブルを配置する方法

  14. 14

    ggplot2を使用してリッカート尺度の種類のグラフを作成する

  15. 15

    ローカルGitリポジトリをすべてのブランチとタグを含む新しいリモートにプッシュします

  16. 16

    Entity Framework内のSaveChangesは、データベーストランザクション内のすべての変更をラップしますか

  17. 17

    .shと.pngを使用してプログラムのショートカットを作成します

  18. 18

    ディレクトリに変更するプログラムへのショートカットを作成します

  19. 19

    書き込みブートストラッパーのローカリゼーションを作成します

  20. 20

    ggplot2の `scale_fill_manual`でプロットを手動で色付けしても機能しない

  21. 21

    Firebaseクラウドメッセージング(FCM)せずに自分のアプリケーションをインストールしたすべてのデバイスにプッシュ通知を作成することが可能ですか?

  22. 22

    Rのggplot2を使用して、ビン化されたクラスの連続ラスターデータをプロットします

  23. 23

    ggplot2でforループを使用して、データフレーム内に複数のグラフをプロットする

  24. 24

    プロットに連続的な色のグラデーションの凡例ストリップを追加する

  25. 25

    ループ内のすべての因子に対して特定の因子をプロットする複数の2列の棒グラフを作成します

  26. 26

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

  27. 27

    ブートストラップ出力の中央値、信頼区間をggplot2にプロットします

  28. 28

    ggplot2のすべてのビンのx値の合計としてyを使用してヒストグラムをプロットする方法

  29. 29

    bashスクリプト内のデバッグプログラムを使用してtmuxセッションをデタッチします

ホットタグ

アーカイブ