微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

定制 y 轴以使用基数 r 中的 hist 显示比例时出现意外的 y 轴值

如何解决定制 y 轴以使用基数 r 中的 hist 显示比例时出现意外的 y 轴值

我正在使用基数 r 制作数据直方图,并希望在 y 轴上显示百分比/比例,而不是密度。我意识到有很多反对这样做的理由,但在这种特殊情况下,这是必需的。我已经修改了此处接受的答案中建议的代码

Histogram does not show densities

但是,我改编的此代码版本的最后一行创建了一个带有意外值的 y 轴。我认为这是因为我未能正确调整最后一行代码(请参阅下面的 reprex;不幸的是,我无法发布生成的直方图,因为我还没有 10 个声望)。

axis(2,at=p2*sum(p1$counts)/100,labels=p2)

我无法弄清楚正在发生的事情的逻辑。我对 r 很陌生,这是我的第一个 reprex - 欢迎对其执行提出建设性的批评!

library(tidyverse)
library(ggplot2)
library(scales)


df <- data.frame(
  FactorscoreO = c(86.83,81.17,87.17,76.67,84.17,78.17,82.83,71.67,83,68.33,86.83,78.5,75.17,48,89.33,92.17,84.33,73.33,99.17,74.33,96.5,73.83,79,40.5,26.83,83.67,95.83,100,64.17,85.83,85.17,56.67,80.83,96.17,82.5,79.5,91.33,83.33,74.67,74,82.17,76.83,93.83,89.17,88.17,65.83,80,97.5,58.67,80.67,81,78.83,84.83,80.33,64.83,72,96.67,75.83,82.67,66.67,71.83,51.67,43.67,86,87.5,88.33,74.17,70.67,59.67,94.17,65.33,81.67,54.33,66.33,68,73.5,73.17,85.33,72.5,72.83,65.17,59.17,92,60.17,93.33,86.67,83.5,49.17,61.83,62.5,91.67,85.5,56.33,89.83,61.67,98.33,68.5),FactorscoreM = c(0,0.25,13.75,35.25,43,15,15.25,38.5,2.5,50.25,34,19.25,21,16.5,16,26,48.75,30,16.75,55.25,62,40,43.75,30.75,6.25,2.25,49.5,2,11.25,56.75,52.75,26.75,36,43.5,33.25,3.5,17.5,23,5,25,29.25,33,28.75,21.75,11.5,39.25,30.5,35,50.75,32.5,54.75,6,20.25,63.75,60.5,3,71.25,3.75,53,35.75,51.25,25.75,10.5,46.25,19.5,16.25,1.5,13,23.25,44.75,3.25,12.5,45,37,28.25,50,7.5,22,22.5,52,45.5,8.5,11,47.75,23.5,18.75,22.25,35.5,64.5,0),Profile = as.factor(c("1","2","3","1","2"))
)

p1 <- hist(df$FactorscoreO[df$Profile=="1"],main="Profile 1",xlab='',ylab='',cex.lab = 2)
p2 <- pretty(p1$counts/sum(p1$counts)*100 )
axis(2,labels=p2)

reprex package (v0.3.0) 于 2021 年 4 月 3 日创建

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。