【发布时间】:2019-05-24 04:08:42
【问题描述】:
问题
两天前我刚刚开始使用 R。我已经阅读了一些基本的 R 教程,并且能够绘制二维数据。我从 Oracle 数据库中提取数据。现在,当我尝试使用辅助轴合并两种图形类型(线和条形)时遇到问题。
我没有问题,在 Excel 上绘制这些数据。以下是剧情:
我无法在 R 上绘制它。我搜索了一些相关示例,但无法根据我的要求对其进行调整 (Combining Bar and Line chart (double axis) in ggplot2)
代码
以下是我用来分别绘制条形图和折线图的代码:
酒吧:
p <- ggplot(data = df, aes(x = MONTHS, y = BASE)) +
geom_bar(stat="identity") +
theme_minimal() +
geom_text(aes(label = BASE), vjust = 1.6, color = "White", size = 2.5)
行:
p1 <- ggplot(data = df, aes(x = MONTHS, y = df$INTERNETPERCENTAGE, group = 1)) +
geom_line() +
geom_point()
数据
更新:我有以下数据(清除了“,”和“%”符号的原始数据):
> dput(head(df,20))
structure(list(MONTHS = structure(c(11L, 10L, 3L, 5L, 4L, 8L,
1L, 9L, 7L, 6L, 2L, 13L, 12L), .Label = c("Apr-18", "Aug-18",
"Dec-17", "Feb-18", "Jan-18", "Jul-18", "Jun-18", "Mar-18", "May-18",
"Nov-17", "Oct-17", "Oct-18", "Sep-18"), class = "factor"), BASE = c(40756228L,
41088219L, 41642601L, 42017111L, 42439446L, 42847468L, 43375319L,
43440484L, 43464735L, 43326823L, 43190949L, 43015301L, 42780071L
), INTERNETUSERGREATERTHAN0KB = c(13380576L, 13224502L, 14044105L,
14239169L, 14011423L, 14736043L, 14487827L, 14460410L, 14632695L,
14896654L, 15019329L, 14141766L, 14209288L), INTERNETPERCENTAGE = c(33L,
32L, 34L, 34L, 33L, 34L, 33L, 33L, 34L, 34L, 35L, 33L, 33L),
SMARTPHONE = c(11610216L, 11875033L, 12225965L, 12412010L,
12760251L, 12781082L, 13142400L, 13295826L, 13422476L, 13408216L,
13504339L, 13413596L, 13586438L), SMARTPHONEPERCENTAGE = c(28L,
29L, 29L, 30L, 30L, 30L, 30L, 31L, 31L, 31L, 31L, 31L, 32L
), INTERNETUSAGEGREATERTHAN0KB4G = c(829095L, 969531L, 1181411L,
1339620L, 1474300L, 1733027L, 1871816L, 1967129L, 2117418L,
2288215L, 2453243L, 2624865L, 2817199L)), row.names = c(NA,
13L), class = "data.frame")
【问题讨论】:
-
p 和 p1 工作得非常好,我无法合并这两个图。同时,将折线图的主要 y 轴作为合并图的次要 y 轴。我无法正式化任何可以返回此合并类型的任何情节的代码,因此我没有在我的问题中发布任何代码。
-
您能否使用
dput(head(df,20))向您的问题添加数据? -
;什么都不做,我猜只是一种习惯。
-
我也可以清理它,但在数据库方面。比如去掉“%”号或者去掉“,”