R:如何在ggplot2中同时反转和应用轴变换
在使用R:如何在ggplot2中同时反转和应用轴变换,r,ggplot2,scaletransform,R,Ggplot2,Scaletransform,在使用ggplot2包构建的绘图中,例如: ggplot(cars, aes(x = speed, y = dist))+geom_col() 可以通过应用适当的指令来变换轴。例如,+scale\u y\u continuous(trans=“reverse”)从顶部到底部绘制坐标轴,并且scale\u y\u continuous(trans=“sqrt”)进行非线性变换。我需要结合这两个函数,即轴原点在顶部,对数或sqrt变换在y轴上。逐个应用转换(即,+scale\u y\u rever
ggplot2
包构建的绘图中,例如:
ggplot(cars, aes(x = speed, y = dist))+geom_col()
可以通过应用适当的指令来变换轴。例如,+scale\u y\u continuous(trans=“reverse”)
从顶部到底部绘制坐标轴,并且scale\u y\u continuous(trans=“sqrt”)
进行非线性变换。我需要结合这两个函数,即轴原点在顶部,对数或sqrt变换在y轴上。逐个应用转换(即,+scale\u y\u reverse()…+scale\u y\u log()
)会发出警告:已存在“y”的缩放。为“y”添加另一个刻度,它将替换现有的刻度。
这样如何:
require(scales);
rev_sqrt_trans <- function() {
scales::trans_new(
name = "rev_sqrt",
transform = function(x) -sqrt(abs(x)),
inverse = function(x) x^2);
}
require(ggplot2);
ggplot(cars, aes(x = speed, y = dist)) + geom_col() + scale_y_continuous(trans = "rev_sqrt")
require(比例);
rev_sqrt_trans这个怎么样:
require(scales);
rev_sqrt_trans <- function() {
scales::trans_new(
name = "rev_sqrt",
transform = function(x) -sqrt(abs(x)),
inverse = function(x) x^2);
}
require(ggplot2);
ggplot(cars, aes(x = speed, y = dist)) + geom_col() + scale_y_continuous(trans = "rev_sqrt")
require(比例);
rev_sqrt_trans此配方的直接应用产生了一个错误:get中的错误(as.character(FUN),mode=“function”,envir=envir):未找到模式“function”的对象“rev_sqrt_trans”是的,抱歉!我忘了在函数中包装新的转换。它现在应该可以工作了。直接应用这个配方产生了一个错误:get中的错误(as.character(FUN),mode=“function”,envir=envir):没有找到mode“function”的对象“rev_sqrt_trans”!我忘了在函数中包装新的转换。现在应该可以了。