我需要R ggplot2中的辅助轴,并且无法使公式正确。 我无法在Google搜索中找到类似的问题。 这是有效的:
mydata <- data.frame(x = c(0, 1, 2, 3, 4, 5),
y = c(20, 55, 69, 72, 73, 72))
library(ggplot2)
ggplot(data = mydata, aes(x = x, y = y)) +
geom_point(shape = 21,size = 5,color = "black",fill = "orange",stroke = 1) +
scale_x_continuous(name = 'Number of Contacts') +
scale_y_continuous(name="Remembered (%)",
sec.axis = sec_axis(trans = ~. +10,name = "Remembered (Index)"))
Endorsement Policy 但是,我在sec_axis部分中的公式更复杂,应该类似于
secondary axis = (y - min(y)) * 100/(max(y)- min(y))
所以辅助轴是
c(0.00000, 66.03774, 92.45283, 98.11321, 100.00000, 98.11321)
在这个例子中。想法是在图的右侧有一个索引 这允许找到给定值的70-80%范围。
我尝试了不同版本的I()
,但徒劳无功。
欢迎任何想法。还有任何文件更彻底地解释了函数的公式部分
会受到欢迎。 ?公式在这方面对我没什么帮助。
答案 0 :(得分:2)
公式中的.
是您的y
。您只需将公式y
替换为.
。
公式变为:
~ (.-min(.))*100/(max(.)-min(.))
在你的例子中它给你:
mydata <- data.frame(x = c(0, 1, 2, 3, 4, 5),
y = c(20, 55, 69, 72, 73, 72))
library(ggplot2)
ggplot(data = mydata, aes(x = x, y = y)) +
geom_point(shape = 21,size = 5,color = "black",fill = "orange",stroke = 1) +
scale_x_continuous(name = 'Number of Contacts') +
scale_y_continuous(name="Remembered (%)",
sec.axis = sec_axis(trans = ~ (.-min(.))*100/(max(.)-min(.)),
name = "Remembered (Index)"))
答案 1 :(得分:0)