R 将刻度线设置为0.01,0.1,1
我写了下面的代码来制作这个情节R 将刻度线设置为0.01,0.1,1,r,ggplot2,R,Ggplot2,我写了下面的代码来制作这个情节 pd<- position_dodge(.2) # # move them .05 to the left and right pm25 <- ggplot(data, aes(x=CombSEG, y=conc,shape=A,color=A, lty=A, group=A)) + geom_point() + geom_line() + geom_errorbar(aes(ymin=conc-se, ymax=conc+se),
pd<- position_dodge(.2) # # move them .05 to the left and right
pm25 <- ggplot(data, aes(x=CombSEG, y=conc,shape=A,color=A, lty=A, group=A)) +
geom_point() +
geom_line() +
geom_errorbar(aes(ymin=conc-se, ymax=conc+se),
width=.1, position=pd) +
theme_bw()+
limits(c(0
scale_y_log10(breaks=c(0.01,0.1,1),labels=c(0.01,0.1,1))
pd使用scale\u y\u log10
的中断
和标签
参数(阅读它们)
看起来像:
最后,如果希望标签也为0.1、.1和1,请使用labels
参数:
ggplot(df,aes(x=x,y=y)) + geom_point() + scale_y_log10(breaks=c(.01,.1,1))
ggplot(df,aes(x=x,y=y)) + geom_point() +
scale_y_log10(breaks=c(.01,.1,1),labels=c(.01,.1,1))
使用坐标转换()代替刻度()
df您能给出一个小的可复制示例(即数据)吗?即使你只是做一些模拟你的问题,我尝试了完全相同的代码,但只有0.1出现在中间。这是数据的最大值和最小值最小值:0.01504中位数:0.03957平均值:0.06148最大值:0.43815I有另一组数据,其中最小值=0.1,最大值=0.7,只有0.1出现在刻度的末尾。@TranHuynh如果您的数据范围在0.1到0.7之间,并且您手动将断点设置为0.01、0.1和1,除了0.1之外,为什么您可能希望看到它们中的任何一个?如果您按照要求做了,并提供了一个可复制的示例,我们可以从一开始就告诉您也要通过limits=c(0,1)
到scale\u y\u log10
。我们不是读心术的。@mathematic.coffee&Joran&Thierry:谢谢。在这种情况下,我想我更喜欢coord\u trans(y=“log10”)
,正如另一个答案所建议的那样。请参见新ggplot2文档站点上的。
ggplot(df,aes(x=x,y=y)) + geom_point() +
scale_y_log10(breaks=c(.01,.1,1),labels=c(.01,.1,1))
df <- data.frame(x=1:100,y=10^-(2*runif(100)))
ggplot(df,aes(x=x,y=y)) + geom_point() + coord_trans(y = "log10")