[英]How to change the scale(interval) of Y-axis in a scatter plot in R?
您可以嘗試滾動您自己的“負面處理”日志或立方根轉換器:
## create some similar data:
set.seed(102)
data <- data.frame(
Revenue = rlnorm( n=200, m=10, s=1 ),
Profits = -5e3 + rnorm( n=200, m=8e3, s=10e3 )
) %>% mutate( Employees = runif( n(), max=1e5 ) + Revenue*rlnorm(m=0.5, n=n()) )
## transformation:
ytrans <- function(x)sign(x)*abs(x)^(1/3)
## ytrans <- function(x)sign(x)*abs(log(x))
## plot it
plot(data$Revenue, ytrans(data$Profits), main="Revenue vs Profits", xlab="Revenue", ylab="Profits", xlim=c(0,500000), ylim=ytrans(c(-25000,55000)), cex=0.00001*data$Employees, yaxt="n")
y.labels <- c(-20e3, -5e3, -1e3, 0, 1e3, 5e3, 20e3 )
y.at <- ytrans(y.labels)
axis( 2, at=y.at, labels=y.labels )
與您的真實數據相比,它可能看起來更漂亮。
也許您需要將其重新定位在 0 以外的位置,以使轉換更加成功。 我需要查看您的數據才能確定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.