在R中创建带有两个y轴的图表 [英] Create a chart with two y axis in R

查看:240
本文介绍了在R中创建带有两个y轴的图表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我具有以下小标题格式,并且我想创建一个具有两个y轴的图表.

I have the following tibble format and i want to create a chart with two y-axis.

sample <- climate <- tibble(
  Month = c("1/1/2019","2/1/2019","3/1/2019","4/1/2019","5/1/2019","6/1/2019","7/1/2019","8/1/2019","9/1/2019","10/1/2019","11/1/2019","12/1/2019","1/1/2020","2/1/2020","3/1/2020"),
  Reactions = c(52111,37324,212695,152331,24973,10878,7413,8077,13066,50486,8087,12600,31625,25578,20069),
  Ratio = c(1371,1866,6445,4914,925,363,218,245,335,1530,352,525,1506,1112,873)
)

这是我到目前为止尝试过的.

Here's what i tried so far.

ggplot() + 
  geom_bar(mapping = aes(x = sample$Month, y = sample$Reactions), stat = 'identity') +
  geom_line(mapping = aes(x = sample$Month , y = sample$Ratio), size = 2, color = "red") + 
  scale_y_continuous(name = "Reactions per Month", sec.axis = sec_axis(trans = ~./20, name = "Reactions/ post"))

任何帮助将不胜感激

推荐答案

您必须将Month列重新编码为日期,并将Ratio乘以20(因为您将第二个轴划分为20):

you have to recode Month column as date, and multiply Ratio times 20 (since you devided second axis by 20):

library(lubridate)

sample$Month <- mdy(sample$Month)

ggplot() + 
  geom_bar(mapping = aes(x = sample$Month, y = sample$Reactions), stat = 'identity') +
  geom_line(mapping = aes(x = sample$Month , y = sample$Ratio*20), size = 2, color = "red") + 
  scale_y_continuous(name = "Reactions per Month", sec.axis = sec_axis(trans = ~./20, name = "Reactions/ post"))

您还可以在ggplot()

ggplot(sample, aes(x = Month)) + 
  geom_bar(aes(y = Reactions), stat = 'identity') +
  geom_line(aes(y = Ratio*20), size = 2, color = "red") + 
  scale_y_continuous(name = "Reactions per Month", sec.axis = sec_axis(trans = ~./20, name = "Reactions/ post"))

图:

这篇关于在R中创建带有两个y轴的图表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆