gpt4 book ai didi

r - ggplot2:如何在 R 中正确格式化 sec.axis

转载 作者:行者123 更新时间:2023-12-03 21:20:44 26 4
gpt4 key购买 nike

我试图在我的 ggplot 图中使用 geom_line() 绘制 3 条线。其中一个变量具有不同的比例,因此我也尝试使用 sec.axis 来显示它。

library(ggplot2)
library(reshape2)

tab <- data.frame(year = seq(1979,2010), freq = runif(32, 212,283), max =
runif(32, 962.1, 993.4), med = runif(32, 972.1, 989.3), min = runif(32,
955.7, 978.3))

summary(tab) # the column freq (frequency) has a different scale comparing with the other ones

我试过的一些代码。
tab <- melt(tab, id = c("year")) # melt the data

ggplot(tab, aes(x = year, y = value)) +
theme_bw() +
scale_colour_manual(values =c('red','blue', 'green')) +
geom_line() +
scale_y_continuous(limits = c(900,1000), sec.axis = sec_axis(~. *0.3)) # I am using limits in order to control the extent for the other variabiles besides 'freq'.

这显示了第二个 y_axis,但缺少变量 'freq'。到目前为止,我找不到显示如何使用 sec.scale 以及一个变量绘制多条线的示例。另外,我不确定我是否需要先转换 'freq' 变量,还是只需要控制它的 sec.axis,所以如果有人能解释我,我将不胜感激。

谢谢!

最佳答案

你在寻找这样的东西吗?

tab %>%
mutate(value = if_else(variable == 'freq', value + 700, value)) %>%
ggplot(aes(
x = year,
y = value,
color = variable
)) +
theme_bw() +
scale_colour_manual(values =c('red','blue', 'green', 'black')) +
geom_line() +
scale_y_continuous(sec.axis = sec_axis(
trans = ~ . - 700,
))

关于r - ggplot2:如何在 R 中正确格式化 sec.axis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54178181/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com