Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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
在R中突出显示面状ggplot2图形中的最小点和最大点_R_Ggplot2_Visualization - Fatal编程技术网

在R中突出显示面状ggplot2图形中的最小点和最大点

在R中突出显示面状ggplot2图形中的最小点和最大点,r,ggplot2,visualization,R,Ggplot2,Visualization,我在R中使用内置的economics(来自ggplot2包)数据集,并使用以下代码在同一图表中绘制了每个变量的时间序列: library(reshape2) library(ggplot2) me <- melt(economics, id = c("date")) ggplot(data = me) + geom_line(aes(x = date, y = value)) + facet_wrap(~variable, ncol = 1, scales = 'f

我在R中使用内置的
economics
(来自
ggplot2
包)数据集,并使用以下代码在同一图表中绘制了每个变量的时间序列:

library(reshape2)
library(ggplot2)

me <- melt(economics, id = c("date"))
ggplot(data = me) + 
     geom_line(aes(x = date, y = value)) +
     facet_wrap(~variable, ncol = 1, scales = 'free_y')
这并没有真正把我带到任何地方。 谢谢:)

方法1:使用联接 当您想要保存过滤的子集时,这会很好


library(重塑2)
图书馆(GG2)
图书馆(dplyr)
我%
分组依据(变量)%>%
总结(最小值=最小值),
max=max(值))->me.2
左(我,我.2)%>%
变异(颜色=值==最小值|值==最大值)%>%
过滤器(颜色==TRUE)->me.3
ggplot(数据=me,aes(x=日期,y=值))+
geom_线()+
几何点(数据=me.3,aes(x=日期,y=值),颜色=“红色”)+
刻面(变量,ncol=1,scales='free'y')
方法2:无连接简化 谢谢@Gregor

me.2%
分组依据(变量)%>%
变异(颜色=(最小(值)=值|最大(值)=值))
ggplot(数据=me.2,aes(x=日期,y=值))+
geom_线()+
几何点(aes(颜色=颜色))+
镶嵌面包裹(~变量,ncol=1,scales=“free\u y”)+
比例颜色手册(数值=c(NA,“红色”))

方法1:使用联接 当您想要保存过滤的子集时,这会很好


library(重塑2)
图书馆(GG2)
图书馆(dplyr)
我%
分组依据(变量)%>%
总结(最小值=最小值),
max=max(值))->me.2
左(我,我.2)%>%
变异(颜色=值==最小值|值==最大值)%>%
过滤器(颜色==TRUE)->me.3
ggplot(数据=me,aes(x=日期,y=值))+
geom_线()+
几何点(数据=me.3,aes(x=日期,y=值),颜色=“红色”)+
刻面(变量,ncol=1,scales='free'y')
方法2:无连接简化 谢谢@Gregor

me.2%
分组依据(变量)%>%
变异(颜色=(最小(值)=值|最大(值)=值))
ggplot(数据=me.2,aes(x=日期,y=值))+
geom_线()+
几何点(aes(颜色=颜色))+
镶嵌面包裹(~变量,ncol=1,scales=“free\u y”)+
比例颜色手册(数值=c(NA,“红色”))

可能不是代码不起作用的原因,但您可以使用
which.max
which.min
来获取最大值和最小值的索引。此外,在最小代码中,它可能应该是
economics$pce==min(economics$pce)
。可能是这样。@Molx我试图找到每个变量的最小值和最大值,并在图形上生成它。因此,一旦我知道了变量的最小值(y轴),我如何找到最小值(x轴)的日期值可能不是代码不起作用的原因,但您可以使用
which.max
which.min
来获得最大值和最小值的索引。此外,在您的最小代码中,它可能应该是
economics$pce==min(economics$pce)
。可能是这样。@Molx我试图找到每个变量的最小值和最大值,并在图形上生成它。因此,一旦我知道了变量的最小值(y轴),我如何才能找到最小值(x轴)的日期值呢?一些简化:
me%mutate(color=(min(value)==value | max(value)==value))
无需连接。然后对于绘图,你不需要给它额外的数据,只需为你不喜欢的点设置颜色,像这样:
geom\u point(aes(color=color))+scale\u color\u手册(values=c(NA,“red”)
@Jason我想的更多的是转换、总结和子集。你能帮我一下吗?简单一点:
me%mutate(color=(min(value)==value | max(value)==value))
无需加入。然后,对于绘图,你不需要给它额外的数据,只需为你不喜欢的点设置颜色,就像这样:
geom\u point(aes(color=color))+scale\u color\u手册(values=c(NA,“red”)
@Jason我想的更多的是转换、总结和子集。你能帮我一下吗。
which(pce == min(economics$pce), arr.ind = TRUE) 
which(pca == max(pca), arr.ind = TRUE)
library(reshape2)
library(ggplot2)
library(dplyr)

me <- melt(economics, id=c("date"))

me %>%
  group_by(variable) %>%
  summarise(min = min(value),
            max = max(value)) -> me.2

left_join(me, me.2) %>%
  mutate(color = value == min | value == max) %>%
  filter(color == TRUE) -> me.3

ggplot(data=me, aes(x = date, y = value)) + 
  geom_line() +
  geom_point(data=me.3, aes(x = date, y = value), color = "red") +
  facet_wrap(~variable, ncol=1, scales='free_y')
me.2 <- me %>%
  group_by(variable) %>%
  mutate(color = (min(value) == value | max(value) == value))

ggplot(data=me.2, aes(x = date, y = value)) +
  geom_line() +
  geom_point(aes(color = color)) +
  facet_wrap(~variable, ncol=1, scales="free_y") +
  scale_color_manual(values = c(NA, "red"))