繁体   English   中英

R中y轴的箱线图刻度值?

[英]Boxplot tick values for the y-axis in R?

我正在尝试在 R 中创建一个箱线图,但是,我发现该图的 y 轴刻度值错误。

.rdata 可在https://www.dropbox.com/s/vbgf3mhgd2mjx8o/Mydata2.rdata?dl=0 获得

load("Mydata2.rdata",.GlobalEnv)
boxplot(Value~Type+Level, data=Mydata2)

如图所示,y轴标记为“0,50,100”,但是我的数据范围从-36.9到133.7。 我想知道如何解决这个问题? 在此处输入图片说明

在这里,我使用minmeanmax作为刻度线。 您可以手动将它们设置为任何值,甚至可以设置超过 3 个刻度。 yaxt="n"防止默认刻度线,然后通过使用axis并将边设置为2 ( axis(2,... ) 我添加我想要的刻度线。阅读 R 中的?axis

boxplot(Value~Type+Level, yaxt="n", data=Mydata2)
axis(2, 
     at=round(c(min(Mydata2$Value), mean(Mydata2$Value), max(Mydata2$Value)),1),
     labels = T)

后续问题:如何计算默认刻度线?

“当at = NULL ,内部计算漂亮的刻度线位置(与axTicks(side)相同)。”

因此,您的代码正在运行。 boxplot选择默认刻度线,因此它更漂亮(漂亮是主观的)。

两种方法:

  1. 通过axisat参数单独设置每个刻度axisat是定义每个刻度线的数字向量):
boxplot(Value~Type+Level, yaxt="n", data=Mydata2)
tickmarks = c(min(Mydata2$Value), max(Mydata2$Value))
axis(2, at = round(tickmarks,1))
  1. 通过ylim参数定义刻度boxplot的范围。 因此,要将刻度线的范围设置在 -40 到 140 之间:
boxplot(Value~Type+Level, data=Mydata2, ylim=c(-40,140))

方法#2 有时有效,但并非总是如此。 方法 #1 更可靠和可定制,因此应该更频繁地使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM