異なる色のggplotを使用して複数のデータフレームをプロットする

クリスM

私はrとggplot2の両方に非常に慣れていません。以下のコードを使用してプロットを作成しようとしています。プライマリデータセット(dat)にはプロットしたいデータが含まれており、datの各「tp」には一意の色が割り当てられているため、特定の「tp」に関連付けられた厚さ。このコードは、期待どおりの出力で正常に実行されます。

#Example
require(ggplot2)

#DataFrame
mytp<-c(80.01,80.01,80.01,80.01,80.01,80.01,80.02,80.02,80.02,80.02,80.02,80.02,80.03,80.03,80.03,80.03,80.03,80.03,80.04,80.04,80.04,80.04,80.04,80.04,83.01,83.01,83.01,83.01,83.01,83.01,83.02,83.02,83.02,83.02,83.02,83.02,83.03,83.03,83.03,83.03,83.03,83.03,83.04,83.04,83.04,83.04,83.04,83.04)
mycompid<-c(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4)
mytml<-c(80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83)
myyears<-c(7.33470226,23.50171116,20.25188227,15.8329911,26.58726899,11.00068446,7.33470226,26.58726899,23.50171116,11.00068446,20.25188227,15.8329911,7.33470226,11.00068446,26.58726899,23.50171116,15.8329911,20.25188227,7.33470226,11.00068446,15.8329911,20.25188227,26.58726899,23.50171116,7.33470226,11.00068446,15.8329911,20.25188227,23.50171116,26.58726899,7.33470226,11.00068446,15.8329911,20.25188227,23.50171116,26.58726899,7.33470226,11.00068446,15.8329911,20.25188227,23.50171116,26.58726899,7.33470226,11.00068446,15.8329911,20.25188227,23.50171116,26.58726899)
mythick<-c(0.29,0.28,0.28,0.28,0.28,0.28,0.29,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.28,0.27,0.27,0.27,0.27,0.27,0.27,0.28,0.27,0.27,0.27,0.27,0.27,0.28,0.28,0.28,0.28,0.28,0.28,0.3,0.29,0.29,0.28,0.28,0.28,0.3,0.28,0.28,0.27,0.27,0.27)
mycomp<-c("6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE")
myDate<-c("1994-10-01","2010-12-01","2007-08-31","2003-03-31","2013-12-31","1998-05-31","1994-10-01","2013-12-31","2010-12-01","1998-05-31","2007-08-31","2003-03-31","1994-10-01","1998-05-31","2013-12-31","2010-12-01","2003-03-31","2007-08-31","1994-10-01","1998-05-31","2003-03-31","2007-08-31","2013-12-31","2010-12-01","1994-10-01","1998-05-31","2003-03-31","2007-08-31","2010-12-01","2013-12-31","1994-10-01","1998-05-31","2003-03-31","2007-08-31","2010-12-01","2013-12-31","1994-10-01","1998-05-31","2003-03-31","2007-08-31","2010-12-01","2013-12-31","1994-10-01","1998-05-31","2003-03-31","2007-08-31","2010-12-01","2013-12-31")
mytpcolor<-c("gray53","gray53","gray53","gray53","gray53","gray53","lightyellow4","lightyellow4","lightyellow4","lightyellow4","lightyellow4","lightyellow4","salmon2","salmon2","salmon2","salmon2","salmon2","salmon2","pink","pink","pink","pink","pink","pink","gray52","gray52","gray52","gray52","gray52","gray52","mistyrose1","mistyrose1","mistyrose1","mistyrose1","mistyrose1","mistyrose1","dodgerblue","dodgerblue","dodgerblue","dodgerblue","dodgerblue","dodgerblue","violetred1","violetred1","violetred1","violetred1","violetred1","violetred1")

#Primary Data for Plot
dat<-data.frame(tp=mytp, compid=mycompid,       tml=mytml,years=myyears,thick=mythick,comp=mycomp,Date=myDate,tpcolor=mytpcolor)
dat$Date=as.Date(dat$Date)

ldatcompid<-c(4,4,4,4,4,4,4,4,4)
ldatnps<-c(6,6,6,6,6,6,6,6,6)
ldatcomp<-c("PIPE","PIPE","PIPE","PIPE","PIPE","PIPE","PIPE","PIPE","PIPE")
ldatcase<-c("data","data","data","data","data","data","data","data","data")
ldatyear<-c(0,2.5,7.33,11,15.83,19.83,20.25,23.5,26.59)
ldatMean<-c(0.2849,0.2843,0.2831,0.2822,0.2807,0.2798,0.2797,0.2788,0.2778)
ldatDate<-c("1987-06-01","1989-11-30","1994-09-29","1998-05-31","2003-03-30","2007-03-30","2007-08-31","2010-11-30","2014-01-01")
ldatsizecomp<-c("6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE","6PIPE")

#Additional Data in separate Date Set
ldat<-data.frame(compid=ldatcompid, nps=ldatnps,       comp=ldatcomp,case=ldatcase,year=ldatyear,   Mean=ldatMean,Date=ldatDate,sizecomp=ldatsizecomp)
ldat$Date=as.Date(ldat$Date)

ggplot(data=dat,aes(x=as.Date(Date),y=thick, group=tpcolor,color=tpcolor)) + geom_point(shape=18,size=3,position = position_jitter(w = 50, h = 0)) + # Plot Main Data 
gtitle(paste0("MyCircuit","_","MyComponent","(",dat$compid,")")) +  #Plot Title
theme_bw() + theme(plot.title= element_text(size=16, face="bold")) + 
labs(x="Survey Dates and Beyond",y="Thickness(in Inches)") +  #Axis labels

***#MeanLine of 2nd Set Of Data  --- WHEN LINE 39 (geom_smooth) or LINE 40 (geom_line) below are UNCOMMENTED, the PLOT NO LONGER RECOGNIZES tpcolor used in line 31 (ggplot2) above.  Instead I receive an error Message:  Error in eval(expr, envir, enclos) : object 'tpcolor' not found --WHY?
#geom_smooth(data=ldat, aes(x=Date, y=Mean), method='lm',se=FALSE, fullrange=TRUE, colour="black", linetype="dotdash", size=0.25) +
#geom_line(data=ldat, aes(x=Date, y=Mean), colour="black", linetype="dotdash", size=0.25) +***

scale_colour_discrete(name  ="Test Points",
                    breaks=dat$tpcolor,
                    labels=dat$tp)

2番目のデータフレームldatのデータを使用してプロットに追加しようとすると、問題が発生します。上記のコードには次の行が含まれていますが、コメントアウトされています。

geom_smooth(data=ldat, aes(x=Date, y=Mean), method='lm',se=FALSE, fullrange=TRUE, colour="black", linetype="dotdash", size=0.25) +

このコードラインのコメントを外すと、エラーが発生します。

eval(expr、envir、enclos)のエラー:オブジェクト 'tpcolor'が見つかりません*

そして、私はその理由がわかりません。代わりにgeom_lineを使用してみましたが、それも機能していないようです。コード内のさまざまな場所に配置してみましたが、効果はありませんでした。

, group=tpcolor,color=tpcolor最初のプロット(ggplot2 aesthetic)からを削除すると、エラーは消えますが、割り当てようとしている色が失われます。dat $ tpcolorを使用してggplot2美学の色を明示的に割り当てると、別のエラーが発生します。

エラー:美学は長さ1か、dataProblems:Date、Meanと同じ長さである必要があります

ここでは、最初にプロットされたデータとは別に、同じ日付範囲内の別のレイヤーをプロットに追加していると思いましたが、これは、プライマリデータセットに割り当てられた色が2番目のデータセットに適用されていることを意味しているようです。やること。

次に何を試すべきかよくわかりません。元のデータフレームの各tpに割り当てられた色を使用して、両方のデータセットを同じプロットに取得するのに役立つアイデアはありますか?

jeremycg

ggplotを呼び出すと、次のすべてのgeomが指定したイニシャルaes取得します。これにより、geom_smooth呼び出しが検索されるtpcolorようになり、グループに色を付ける方法がわかりますが、グループが見つからないため、エラーが発生します。

修正するには、各geomでデータを個別に使用してみてください。

ggplot() + geom_point(data = dat, aes(x = as.Date(Date), y = thick, group = tpcolor, color = tpcolor), shape = 18, size = 3, position = position_jitter(w = 50, h = 0)) +
           geom_smooth(data = ldat, aes(x = Date, y = Mean), method = 'lm', se = FALSE, fullrange = TRUE, colour = "black", linetype = "dotdash", size = 0.25)

またはinherit.aes=FALSE、geom_smooth呼び出しに追加して、前の呼び出しを継承しないようにすることもできますaes

ggplot(data = dat, aes(x = as.Date(Date), y = thick, group = tpcolor, color = tpcolor)) +
       geom_point(shape = 18, size = 3, position = position_jitter(w = 50, h = 0)) +
       geom_smooth(data = ldat, aes(x = Date, y = Mean), method = 'lm', se = FALSE, fullrange = TRUE, colour = "black", linetype = "dotdash", size = 0.25, inherit.aes = FALSE)

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

R ggplot2:線の長さが異なる複数のROCプロットのデータフレームを作成します

分類Dev

seaborn.pairplot()を使用してデータフレームを複数の色でプロットしますか?

分類Dev

データフレームからforループを使用して複数のプロットを作成する

分類Dev

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

分類Dev

ggplotを使用してデータフレームの2列を表す2点間に複数の線をプロットする方法

分類Dev

パンダ機能を使用して複数のデータフレームをプロットする

分類Dev

異なる色を使用する1つの列を除いて、デフォルトのカラーマップを使用してデータフレームの列をプロットします

分類Dev

データフレームの異なる列を使用して、1つのプロットに複数のグラフをプロットするにはどうすればよいですか?

分類Dev

1つの列に異なるデータを使用してExcelに複数の線をプロットする

分類Dev

新しいデータフレームを作成せずに、Rのggplot2を使用して、異なるデータフレームからの2つの系列を互いにプロットするにはどうすればよいですか?

分類Dev

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

分類Dev

データフレーム内の異なる変数に対して ggplot をループする

分類Dev

ループして、異なるディレクトリの複数のファイルを使用してプログラムを実行します

分類Dev

ループを使用してRのggplot2を使用し、同じプロット内の同じデータフレームから複数のxyプロットを生成し、対応する凡例を表示します

分類Dev

散布図として、1つのプロットに異なるデータフレームの異なる列をプロットします

分類Dev

ggplot2を使用して1つのプロットに複数のデータフレームを組み合わせる

分類Dev

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

分類Dev

データフレーム内の日付を表す複数の変数を使用して時系列グラフをプロットする

分類Dev

Seabornを使用してパンダデータフレームの列の複数のグループを並べてプロットする方法

分類Dev

複数のデータフレームを使用してバープロットを隣り合わせにプロットする

分類Dev

seaborn.PairGridに異なる色のkdeplotとして複数のデータセットをプロットする

分類Dev

seaborn.PairGridに異なる色のkdeplotとして複数のデータセットをプロットする

分類Dev

データフレームの複数の列を複数のプロットにプロットする(Python)

分類Dev

因子に対して複数の頻度でデータフレームをプロットする方法は?

分類Dev

すべての行を異なるグラフにプロットする-データフレーム

分類Dev

ループを使用してデータフレームを他の複数のデータフレームにサブセット化する

分類Dev

seabornを使用してデータフレーム内の複数の列に対して1つの線形回帰散布図をプロットする方法は?

分類Dev

共有「x」を使用してデータフレームの複数の列をプロットします

分類Dev

1つのx軸を使用して1つのデータフレームから複数のグラフをプロットする-Python

Related 関連記事

  1. 1

    R ggplot2:線の長さが異なる複数のROCプロットのデータフレームを作成します

  2. 2

    seaborn.pairplot()を使用してデータフレームを複数の色でプロットしますか?

  3. 3

    データフレームからforループを使用して複数のプロットを作成する

  4. 4

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

  5. 5

    ggplotを使用してデータフレームの2列を表す2点間に複数の線をプロットする方法

  6. 6

    パンダ機能を使用して複数のデータフレームをプロットする

  7. 7

    異なる色を使用する1つの列を除いて、デフォルトのカラーマップを使用してデータフレームの列をプロットします

  8. 8

    データフレームの異なる列を使用して、1つのプロットに複数のグラフをプロットするにはどうすればよいですか?

  9. 9

    1つの列に異なるデータを使用してExcelに複数の線をプロットする

  10. 10

    新しいデータフレームを作成せずに、Rのggplot2を使用して、異なるデータフレームからの2つの系列を互いにプロットするにはどうすればよいですか?

  11. 11

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

  12. 12

    データフレーム内の異なる変数に対して ggplot をループする

  13. 13

    ループして、異なるディレクトリの複数のファイルを使用してプログラムを実行します

  14. 14

    ループを使用してRのggplot2を使用し、同じプロット内の同じデータフレームから複数のxyプロットを生成し、対応する凡例を表示します

  15. 15

    散布図として、1つのプロットに異なるデータフレームの異なる列をプロットします

  16. 16

    ggplot2を使用して1つのプロットに複数のデータフレームを組み合わせる

  17. 17

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

  18. 18

    データフレーム内の日付を表す複数の変数を使用して時系列グラフをプロットする

  19. 19

    Seabornを使用してパンダデータフレームの列の複数のグループを並べてプロットする方法

  20. 20

    複数のデータフレームを使用してバープロットを隣り合わせにプロットする

  21. 21

    seaborn.PairGridに異なる色のkdeplotとして複数のデータセットをプロットする

  22. 22

    seaborn.PairGridに異なる色のkdeplotとして複数のデータセットをプロットする

  23. 23

    データフレームの複数の列を複数のプロットにプロットする(Python)

  24. 24

    因子に対して複数の頻度でデータフレームをプロットする方法は?

  25. 25

    すべての行を異なるグラフにプロットする-データフレーム

  26. 26

    ループを使用してデータフレームを他の複数のデータフレームにサブセット化する

  27. 27

    seabornを使用してデータフレーム内の複数の列に対して1つの線形回帰散布図をプロットする方法は?

  28. 28

    共有「x」を使用してデータフレームの複数の列をプロットします

  29. 29

    1つのx軸を使用して1つのデータフレームから複数のグラフをプロットする-Python

ホットタグ

アーカイブ