2つのカテゴリのデータセットがあります。私は、各カテゴリーが独自の色とそれ自身の独立した回帰直線を持つrでハイハター散布図を描きたい。私は異なる色を実現するためにforループを使い、私の回帰直線の2つの点を計算しました。問題は、散布図に1つの回帰直線しか描けないことです。私はループ内に線を描こうとしましたが、%>%を使って線を追加しました。どちらもうまくいきませんでした。また、このグラフにタイトルを追加することもできません。 ここに私のコードです。は、ハイチャートの散布図に2番目の回帰線を描くことができません
data<-data.frame(gene=rnorm(20),metab=rnorm(20),type=sample(0:1,1000,rep=TRUE))[1:20,]]
b<-glm(data$metab~data$gene+data$type+data$gene:data$type)
coefficients<-t(b$coefficients)
i<-coefficients[,1]
g<-coefficients[,2]
c2<-coefficients[,3]
g.c2<-coefficients[,5]
u<-matrix(c(1,0))
type1<-u[1,1]
type2<-u[2,1]
largest1<- max(data$gene[data$type==type1])
largest2<-max(data$gene[data$type==type2])
min1<-min(data$gene[data$type==type1])
min2<-min(data$gene[data$type==type2])
line1<-data.frame(x=c(largest1,min1),y=c(g*largest1+i,min1*g+i))
line2<-data.frame(x=c(largest2,min2),y=c(g*largest2+g.c2*largest2+i+c2,min2*g+i+c2))
hc<-highchart(width = 800, height = 700)
#hc_title(text = "scatterplot",
#style = list(color = '#2E1717',fontSize = '20px',
#fontWeight = 'bold')) %>%
for(type in u){
hc<-hc%>%
hc_add_series_scatter(data$gene[data$type==type],data$metab[data$type==type],name=sprintf("type %s", type),
showInLegend = TRUE)
#if(type==type1){
# hc_add_series(hc,data=line1,type='line',name='regression line1')
#}else if (type==type2){
# hc_add_series(hc,data=line2,type='line',name='regression line2')
#}
}
hc
hc_add_series(hc,data=line1,type='line',name='regression line1',enableMouseTracking=FALSE,marker=FALSE) %>%
hc_add_series(hc,data=line2,type='line',name='regression line2',enableMouseTracking=FALSE,marker=FALSE)
line1とline2は、2点の2つの回帰線を含むdata.frameです。
ありがとうございました!それは私の問題を完全に解決する! –