相关疑难解决方法(0)

使用带有facet_wrap的ggplot2显示不同的轴标签

我有一个包含不同变量和不同单位的时间序列,我想在同一个图上显示.

ggplot不支持多轴(如此处所述),所以我按照建议并尝试使用facet绘制曲线:

x <- seq(0, 10, by = 0.1)
y1 <- sin(x)
y2 <- sin(x + pi/4)
y3 <- cos(x)

my.df <- data.frame(time = x, currentA = y1, currentB = y2, voltage = y3)
my.df <- melt(my.df, id.vars = "time")
my.df$Unit <- as.factor(rep(c("A", "A", "V"), each = length(x)))

ggplot(my.df, aes(x = time, y = value)) + geom_line(aes(color = variable)) + facet_wrap(~Unit, scales = "free_y", nrow = 2)
Run Code Online (Sandbox Code Playgroud)

结果如下: 在此输入图像描述

事情是,只有一个y标签,说"值",我想要两个:一个带"电流(A)",另一个带"电压(V)".

这可能吗?

r ggplot2

21
推荐指数
2
解决办法
9393
查看次数

R ggplot facet_wrap 具有不同的 y 轴标签,一个值,一个百分比

我正在使用facet_wrapggplot绘制时间序列值及其百分比:

对于下图,上图是值,下图是百分比变化。我希望下图中的 y 轴为“%”。通常在 ggplot 我会做类似的事情

+ scale_y_continuous(labels = scales::percent)
Run Code Online (Sandbox Code Playgroud)

但是由于我使用的是 facet_wrap,我如何指定我只希望 2 个图的 y 轴标签之一是百分比?

在此处输入图片说明

PS这是生成此图的代码:

library(data.table)
library(ggplot2)
library(scales)
library(dplyr)

pct <- function(x) {x/lag(x)-1}
Dates = seq(from = as.Date("2000-01-01"), 
            to =as.Date("2018-10-01"), 
            by = "1 month")
set.seed(1024)
this_raw = data.frame(CM = Dates,
                      value = rnorm(n = length(Dates)),
                      variable = rep("FAKE",length(Dates)))
this_diff = na.omit(as.data.table(this_raw %>% 
                                    group_by(variable) %>%
                                    mutate_each(funs(pct), c(value))))
this_diff$type = "PerCng"
this_raw$type = "RAW"
plot_all = rbindlist(list(this_raw,this_diff))
plot_all$type = factor(plot_all$type, levels = c("RAW", "PerCng"))

out_gg = plot_all %>% …
Run Code Online (Sandbox Code Playgroud)

visualization r time-series ggplot2 facet-wrap

5
推荐指数
1
解决办法
2926
查看次数

标签 统计

ggplot2 ×2

r ×2

facet-wrap ×1

time-series ×1

visualization ×1