2017-02-08 9 views
0

こんにちは私はこのプロットを持っており、datデータフレームの "shape"列を使って点の形状を決定したいと考えています。 2点は形状= 16で塗りつぶし、残りは形= 1でハローですが、動作していないようです。何かご意見は?列を使用して塗りつぶしのないプロットに図形を追加

time = as.POSIXct(c("2016-05-01 00:00:01","2016-05-01 00:00:02","2016-05-01 00:00:03","2016-05-01 00:00:01","2016-05-01 00:00:02","2016-05-01 00:00:03"), tz = "GMT") 
    group = c("A","A","A","B","B","B") 
    value =c(NA, 99, 100, NA, 101, 100) 
    size =c(NA, 3, 10, NA, 5, 4) 
    dat =data.frame(time= time, group =group, value =value ,size =size, shape= c(1,16,16,1,1,1)) 
    dat 
    ggplot(dat, aes(x=time, y = value, group = group)) +geom_line() + 
     geom_point(aes (color = as.factor(group), size = size), shape=shape) + 
     scale_x_datetime(date_labels = "%H:%M:%S", breaks= date_breaks("5 min")) # + scale_fill_manual(values=c(NA,NA)) doesnt work 

答えて

2

:ここ

は、あなたが持っていることを期待するものを生成(必要がある)は、コードです。実際の形状として渡された値を使用するようにscale_shape_identityを使用する必要があります。

time = as.POSIXct(c("2016-05-01 00:00:01","2016-05-01 00:00:02","2016-05-01 00:00:03","2016-05-01 00:00:01","2016-05-01 00:00:02","2016-05-01 00:00:03"), tz = "GMT") 
group = c("A","A","A","B","B","B") 
value =c(NA, 99, 100, NA, 101, 100) 
size =c(NA, 3, 10, NA, 5, 4) 
dat =data.frame(time= time, group =group, value =value ,size =size, shape= c(1L,16L,16L,1L,1L,1L)) 
dat 
library(ggplot2) 
ggplot(dat, aes(x=time, y = value, group = group)) +geom_line() + 
    geom_point(aes (color = as.factor(group), size = size , shape=shape)) + 
    scale_shape_identity() 

enter image description here

-1

shapeは審美的ではありません。また、形状パラメータを扱うには、それを因子に変換する必要があります。あなたが整形する要因を渡す必要はありません

time = as.POSIXct(c("2016-05-01 00:00:01","2016-05-01 00:00:02","2016-05-01 00:00:03","2016-05-01 00:00:01","2016-05-01 00:00:02","2016-05-01 00:00:03"), tz = "GMT") 
group = c("A","A","A","B","B","B") 
value =c(NA, 99, 100, NA, 101, 100) 
size =c(NA, 3, 10, NA, 5, 4) 
dat =data.frame(time= time, group =group, value =value ,size =size, shape= factor(c(1,16,16,1,1,1))) 
dat 
ggplot(dat, aes(x=time, y = value, group = group)) +geom_line() + 
    geom_point(aes (color = as.factor(group), size = size , shape=shape)) 
+0

中空青い丸と固体赤の三角形を生成します:エリックの答えから多額の借入

。私はすべてのサークルを探しています。私は1と16が両方のサークルを見ていると思う?pchしかし、形が間違って来ている – user3022875

+0

あなたは形に要素を渡す必要はありません。実際の形状として渡された値を使用するようにscale_shape_identityを使用する必要があります。形状の状態に関するヘルプ:#Shapeは、[0、25]の整数、 #プロット記号としてその文字を使用する単一の文字、 #aの4種類の値を取ります。 (すなわち、約1ピクセル) #何も描画しないためには、 – Mist

関連する問題