Вот аналогичный вопрос, но решение не работает для scale_linetype_manual
: Подобный, но не тот же вопрос SO . Когда я использую параметр legend.key
, он вставляет только element_rect позади линий в моей шкале. (См. Изображения ниже)
Теперь у меня все работает на моем графике, за исключением того, что мой график имеет белый фон, а scale_linetype_manual вставляет серый фон.
Когда я использую параметр legend.key
, я получаю следующее (я установил его черным, чтобы он был виден, т.е. legend.key=element_rect(fill="#000000")
):
Как видите, добавляется черный прямоугольник позади серого.
Как изменить цвет серого прямоугольника?
Вот код ggplot2:
p = ggplot()+
theme(axis.line.y.right = element_line(color = "#FF00FF"),
axis.ticks.y.right = element_line(color = "#FF00FF"),
axis.text.y.right = element_text(color = "#FF00FF"),
axis.title.y.right = element_text(color = "#FF00FF"),
panel.background = element_rect(fill="white",color="black"),
legend.key=element_rect(fill="#000000"))+
geom_rect(data=df2, mapping=aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax,fill=color),show.legend = T)+
scale_fill_manual(name="Codon type",values=c('#FFEBCC','#E6FFF7','#F2F2F2'),
labels=c("CR","NCR","None"),
limits=c("CR","NCR","None"))+
#-----This should be the relevant part-----
geom_path(data=df,aes(x=resseqnum,y=y.sec,color='b',linetype='b'))+
geom_path(data=df,aes_string(x='resseqnum',y='cen',color='a',linetype='a'),size=.5)+
geom_path(aes(x=c(x.min,x.max),y=c(a,a),color='c',linetype='c'))+
scale_linetype_manual(name="Lines",values=c("a"='solid',"b"='solid',"c"='dotted'),
labels=c('Centrality','Minmax','Zero reference'))+
scale_color_manual(name="Lines",values=c('#00FF00','#FF00FF','#FF00FF'),
labels=c('Centrality','Minmax','Zero reference'))+
#-----Possible end of relevant part-----
scale_y_continuous("Centrality",sec.axis=sec_axis(~ (. - a)/b,name="Minmax"))+
scale_x_continuous("Sequence location")+
coord_cartesian(xlim=c(0,10))+
ggtitle("Title")
Для воспроизводимости:
df.txt
resseqnum,cen,y.sec
1,4,3
2,5,6
3,6,3
4,NA,NA
5,NA,NA
6,6,4
7,3,2
8,1,3
9,5,3
10,10,5
df2.txt
xmin,xmax,ymin,ymax,color
1,2,1,10,CR
5,7,1,10,NCR
9,10,1,10,None
Другое:
b=2.25
a=5