1

Rの基本的なグラフィックパッケージで書いたコードをggplotに書き込もうとしています。

基本的なグラフィックパッケージを使用して取得したグラフは次のとおりです。

6つのグラフを含む画像の例

このタイプのグラフをggplot2で作成できるかどうか疑問に思いました。パネルを使ってこのようなグラフを作成できると思いますが、このようなプロットにファセットを使用できるのではないかと思いました。私が遭遇した主な問題は、最大値と最小値の長さが共通であるのに対し、観測データは連続データではなく、間隔がまったく異なることです。

このタイプのプロットのデータを配置することについての考えは非常に役立ちます。どうもありがとう。

4

2 に答える 2

1

ジババ、

あなたのコメントから、凡例にgeom_pointだけを表示したいとおっしゃいました。.これは、直接使用するためにまだ実装されていない機能ですggplot2(私が正しければ)。ただし、この投稿@Anikoで提供されている修正/回避策があります。ちょっとトリッキーだけど素晴らしい!そして、それはうまく機能します。これが私が試したバージョンです。それがあなたが期待したものであることを願っています。

# bind both your data.frames
df <- rbind(tempcal, tempobs)

p <- ggplot(data = df, aes(x = time, y = data, colour = group1, 
                 linetype = group1, shape = group1))
p <- p + geom_line() + geom_point()
p <- p + scale_shape_manual("", values=c(NA, NA, 19))
p <- p + scale_linetype_manual("", values=c(1,1,0))
p <- p + scale_colour_manual("", values=c("#F0E442", "#0072B2", "#D55E00"))
p <- p + facet_wrap(~ id, ncol = 1)
p

アイデアは、最初にすべての必要な属性を美学セクションで設定してプロットを作成し、必要なものをプロットしてから、後で を使用して手動で設定を変更することですscale_._manual。たとえば、aでunset線を引くことができます。同様に、 inを使用して線をポイントできます。ここで、最初の 2 つの値は forで、最後の値は for です。したがって、最初の 2 つを forおよびforに設定します。0scale_linetype_manualunsetNAscale_shape_manualgroup1=maximum and minimumobservedNAmaximumminimum0linetypeobserved

そして、これはプロットです:

ここに画像の説明を入力

于 2013-01-26T00:46:05.897 に答える
0

解決策が見つかりました: Arun と Andrie に感謝します

誰かがこの種の問題の解決策を必要とする場合に備えて。

私が使用したコードは次のとおりです。

library(ggplot2)
tempcal <-  read.csv("temp data ggplot.csv",header=T, sep=",")
tempobs <- read.csv("temp data observed ggplot.csv",header=T, sep=",")
p <- ggplot(tempcal,aes(x=time,y=data))+geom_line(aes(x=time,y=data,color=group1))+geom_point(data=tempobs,aes(x=time,y=data,colour=group1))+facet_wrap(~id)
p

使用されたデータセットはhttps://www.dropbox.com/s/95sdo0n3gvk71o7/temp%20data%20observed%20ggplot.csvでした

https://www.dropbox.com/s/4opftofvvsueh5c/temp%20data%20ggplot.csv

得られたプロットは次のとおりです。

ここに画像の説明を入力

ジババ

于 2013-01-23T09:00:41.517 に答える