R 如何为次轴图形添加图例
我试图在下面的代码中为次轴添加图例R 如何为次轴图形添加图例,r,ggplot2,R,Ggplot2,我试图在下面的代码中为次轴添加图例 library(ggplot2) library(dplyr) library(reshape2) df = data.frame(period = seq(as.POSIXct("2017-01-01"),as.POSIXct("2017-12-01"), by = "month"), b = c(100, 110, 105, 200, 210, 190, 180, 170, 165, 175, 140, 145),
library(ggplot2)
library(dplyr)
library(reshape2)
df = data.frame(period = seq(as.POSIXct("2017-01-01"),as.POSIXct("2017-12-01"), by = "month"),
b = c(100, 110, 105, 200, 210, 190, 180, 170, 165, 175, 140, 145),
c = c(120, 130, 150, 170, 250, 160, 130, 120, 110, 130, 120, 170),
d = c(1060, 1180, 1050, 2070, 2150, 1900, 1850, 1070, 1605, 1750, 1460, 1250)) %>%
mutate(period = factor(period))
df_bar = melt(df, id.vars = "period", measure.vars = c("b", "c", "d")) %>% filter(variable != "d")
df_line = df %>% select(period, d)
ggplot(data = df_bar, aes(x = period, y = value, fill = variable)) +
geom_bar(stat = "identity", position = "dodge") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
theme(axis.text=element_text(size=9),
axis.title=element_text(size=14,face="bold")) +
ylab("primary axis") +
geom_line(data = df_line, aes(x = period, y = (d)/10, group = 1), inherit.aes = FALSE) +
geom_point(data = df_line, aes(x = period, y = (d)/10, group = 1), inherit.aes = FALSE) +
scale_y_continuous(sec.axis = sec_axis(~.*10, name = "secondary axis"))
我也想为线条图创建一个图例。您可以在
geom_line
调用中添加linetype
内部aes
,为线条创建一个单独的图例,然后将其图例移近fill
图例
也见此
library(重塑2)
图书馆(tidyverse)
ggplot(数据=df_条,aes(x=周期,y=值,填充=变量))+
几何图形栏(stat=“identity”,position=“dodge”)+
主题(axis.text.x=元素\文本(角度=90,hjust=1))+
主题(
axis.text=元素\文本(大小=9),
axis.title=元素\文本(大小=14,面=“粗体”)
) +
ylab(“主轴”)+
geom_线(数据=df_线,aes(x=周期,y=(d)/10,组=1,线型=“我的线”),inherit.aes=FALSE)+
比例\线型\手动(空,值=1)+
geom_点(数据=df_线,aes(x=周期,y=(d)/10,组=1),inherit.aes=FALSE)+
比例y连续(秒轴=秒轴(~*10,name=“次轴”))+
主题(legend.background=element_rect(fill=“transparent”),
legend.box.background=元素(fill=“transparent”,color=NA),
legend.key=element_rect(fill=“transparent”),
图例.间距=单位(-1,“线”))
要获得同一图例中的点和线,我们可以将color
映射到aes
&使用scale\u color\u手册
ggplot(数据=df_条,aes(x=周期,y=值,填充=变量))+
几何图形栏(stat=“identity”,position=“dodge”)+
主题(axis.text.x=元素\文本(角度=90,hjust=1))+
主题(
axis.text=元素\文本(大小=9),
axis.title=元素\文本(大小=14,面=“粗体”)
) +
ylab(“主轴”)+
geom_线(数据=df_线,aes(x=周期,y=(d)/10,组=1,color=“我的线”),inherit.aes=FALSE)+
比例\颜色\手动(空,值=“黑色”)+
geom_点(数据=df_线,aes(x=周期,y=(d)/10,组=1,color=“我的线”),inherit.aes=FALSE)+
比例y连续(秒轴=秒轴(~*10,name=“次轴”))+
主题(legend.background=element_rect(fill=“transparent”),
legend.box.background=元素(fill=“transparent”,color=NA),
legend.key=element_rect(fill=“transparent”),
图例.间距=单位(-1,“线”))
由(v0.2.0.9000)于2018年7月21日创建。FYI,双Y轴不是一个好的实践,因此不建议使用@TCZhang我在为同一个项目搜索“如何添加次轴”时遇到了这个问题,但这是客户的要求,无法更改。谢谢,它工作得很好,您能否在图例中添加一个点,使其看起来更类似于图中的线和点?