我想在图表的四个边上放置刻度线 . 建议的方式是 mirror_ticks
.
library(ggplot2)
library(ggplotTicks)
sp6<-ggplot(Anna_Smooth, aes(y=log10(Prob2), x=log10(AvSize)))+
geom_point( data=Anna_Smooth, aes(y=log10(Prob2), x=log10(AvSize), color=PART) )+
guides( color=FALSE)
sp8<-sp6+ labs(x=expression(paste(log(s))))+
labs(y=expression(paste(log(P(s)))) )+
theme(axis.text.y = element_text(size=14),
axis.text.x = element_text(size=14),
axis.title.y = element_text(size=15),
axis.title.x = element_text(size=15),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.line = element_line(colour = "black"),
panel.border = element_rect(colour = "black", fill=NA, size=2)
)
sp10<-mirror_ticks(sp10, allPanels=TRUE)
我的输出sp10在相对的面板上没有刻度,如果我放 allPanels=TRUE
则相同的结果
有修复吗?我愿意学习如何通过主题设置实现这一目标?
1 回答
从
ggplot2
版本2.2.0(2016-11-11)开始,scale_x_continuous()
和scale_y_continuous()
可以显示一个辅助轴,该辅助轴与主轴相对,可以使用sec.axis
参数进行控制 .这可用于镜像刻度线 .
OP没有提供可重复的数据,因此我们使用
ggplot2
包附带的mpg
数据集:没有镜像刻度线的图表
带辅助轴的图表
带有log10刻度的镜像刻度线
辅助轴也可用于
scale_x_log10()
和scale_x_log10()
功能 .因此,可以避免在
aes()
的调用中使用log()
函数,但是通过指定适当的对数比例: