Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GGR中有两个y轴的绘图?_R_Ggplot2_Tidyverse_Yaxis - Fatal编程技术网

GGR中有两个y轴的绘图?

GGR中有两个y轴的绘图?,r,ggplot2,tidyverse,yaxis,R,Ggplot2,Tidyverse,Yaxis,我之前问过这个问题,但有人关闭了它,表示它有答案。我很困惑如何将两个变量绘制在两个Y轴上。我想在左侧y轴上绘制水平,在右侧y轴上绘制流动(即次轴)。这是我的数据,我希望得到回复 library(tidyverse) library(lubridate) set.seed(1500) FakeData <- data.frame(Date = seq(as.Date("2020-01-01"), to = as.Date("2020-01-31")

我之前问过这个问题,但有人关闭了它,表示它有答案。我很困惑如何将两个变量
绘制在两个
Y轴上。我想在
左侧
y轴上绘制
水平
,在
右侧y轴上绘制
流动
(即次轴)。这是我的数据,我希望得到回复

library(tidyverse)
library(lubridate)

set.seed(1500)

FakeData <- data.frame(Date = seq(as.Date("2020-01-01"), to = as.Date("2020-01-31"), by = "days"),
                       Level = runif(31, 0, 30), Flow = runif(31, 1,10))
ggplot(data = FakeData, aes(x = Date))+
  geom(aes(y = Level))
库(tidyverse)
图书馆(lubridate)
种子集(1500)
FakeData以下是一个开始:

FakeData <- data.frame(Date = seq(as.Date("2020-01-01"), to = as.Date("2020-01-31"), by = "days"),
                       Level = runif(31, 0, 30), Flow = runif(31, 1,10))

scale_factor <- 4
   ggplot(data = FakeData, aes(x = Date))+
   geom_col(aes(y = Level), fill="darkgreen") +
   geom_line(aes(y = Flow*scale_factor), color="blue") +
   scale_y_continuous(sec.axis = sec_axis(~ .*1, labels = number_format(scale=1/scale_factor), name="Flow"))

FakeData嗨,我现在没有R访问权限,但我想你正在寻找sec.axis参数。。。看看这篇文章()我想它会回答你的问题:)当然,你必须为geom_bar和geom_line使用不同的aes(或者你计划使用的任何东西)。谢谢@Dave,我们正在将
流量增加4倍-我们能将其恢复到原始值吗?我尝试了
scale\u y\u continuous(sec.axis=sec\u axis(~.*scale\u factor/4,name=“Flow”)
-没有成功。@Hydro,对不起,我需要将比例因子添加到标签中,而不是调整值,请参见上面的编辑。谢谢@Dave,我想我们正在复制您代码中的一些行。它确实帮助解决了我的问题-我现在只需要玩
次轴
限制
。有什么建议可以尝试在某些
数字之间
限制
第二个共轴
吗?我尝试使用
限制=c(0,10)
给了我一个完全不同的尺度。老实说,我不明白秒轴公式是如何工作的。ggplot的设计者们在哲学上不喜欢(这里很礼貌)与第一个轴比例不同的次轴。因此,为什么很难按预期工作。由于次对象是从第一个对象开始缩放的,因此无法设置独立的限制。您可以添加类似于
breaks=scale_factor*seq(0,10,2)
的内容来控制记号和标签的位置。