- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些样本队列数据,在使用 ggplot() 绘制时未进行颜色编码或按正确的时间顺序显示。以下代码用于生成绘图:
library(ggplot2)
blues <- colorRampPalette(c('lightblue', 'darkblue'))
p <- ggplot(cohort.chart, aes(x=month, y=users, group=cohort))
p + geom_area(aes(fill = cohort)) +
scale_fill_manual(values = blues(12)) +
ggtitle('Users by cohort') +
theme(plot.title = element_text(hjust = 0.5)) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
正如您在图例中看到的,月份不是按时间顺序排列的,这也反射(reflect)在情节中。我尝试使用 as.yearmon()
将 cohort
和 month
更改为 yearmon
对象,但是这个产生不能使用连续变量的错误。如何在 ggplot() 中解决这个问题?
这是数据
> dput(cohort.chart)
structure(list(cohort = structure(c(11L, 10L, 3L, 5L, 4L, 8L,
1L, 9L, 7L, 6L, 2L, 12L, 11L, 10L, 3L, 5L, 4L, 8L, 1L, 9L, 7L,
6L, 2L, 12L, 11L, 10L, 3L, 5L, 4L, 8L, 1L, 9L, 7L, 6L, 2L, 12L,
11L, 10L, 3L, 5L, 4L, 8L, 1L, 9L, 7L, 6L, 2L, 12L, 11L, 10L,
3L, 5L, 4L, 8L, 1L, 9L, 7L, 6L, 2L, 12L, 11L, 10L, 3L, 5L, 4L,
8L, 1L, 9L, 7L, 6L, 2L, 12L, 11L, 10L, 3L, 5L, 4L, 8L, 1L, 9L,
7L, 6L, 2L, 12L, 11L, 10L, 3L, 5L, 4L, 8L, 1L, 9L, 7L, 6L, 2L,
12L, 11L, 10L, 3L, 5L, 4L, 8L, 1L, 9L, 7L, 6L, 2L, 12L, 11L,
10L, 3L, 5L, 4L, 8L, 1L, 9L, 7L, 6L, 2L, 12L, 11L, 10L, 3L, 5L,
4L, 8L, 1L, 9L, 7L, 6L, 2L, 12L, 11L, 10L, 3L, 5L, 4L, 8L, 1L,
9L, 7L, 6L, 2L, 12L), .Label = c("Apr 2017", "Aug 2017", "Dec 2016",
"Feb 2017", "Jan 2017", "Jul 2017", "Jun 2017", "Mar 2017", "May 2017",
"Nov 2016", "Oct 2016", "Sep 2017"), class = "factor"), month = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 5L,
5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 6L, 6L, 6L, 6L,
6L, 6L, 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 9L,
9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 10L, 10L, 10L, 10L,
10L, 10L, 10L, 10L, 10L, 10L, 10L, 10L, 11L, 11L, 11L, 11L, 11L,
11L, 11L, 11L, 11L, 11L, 11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L,
12L, 12L, 12L, 12L, 12L, 12L), .Label = c("Oct 2016", "Nov 2016",
"Dec 2016", "Jan 2017", "Feb 2017", "Mar 2017", "Apr 2017", "May 2017",
"Jun 2017", "Jul 2017", "Aug 2017", "Sep 2017"), class = "factor"),
users = c(795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 92,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 526, 48, 26, 0, 0, 0, 0, 0,
0, 0, 0, 0, 506, 37, 14, 26, 0, 0, 0, 0, 0, 0, 0, 0, 514,
46, 18, 19, 37, 0, 0, 0, 0, 0, 0, 0, 532, 47, 16, 18, 22,
57, 0, 0, 0, 0, 0, 0, 589, 55, 15, 20, 24, 39, 88, 0, 0,
0, 0, 0, 548, 53, 18, 21, 25, 39, 62, 172, 0, 0, 0, 0, 559,
53, 20, 20, 23, 36, 61, 139, 133, 0, 0, 0, 538, 58, 17, 18,
22, 39, 54, 130, 99, 109, 0, 0, 519, 45, 16, 19, 26, 39,
50, 125, 96, 86, 115, 0, 530, 54, 18, 20, 23, 37, 51, 129,
88, 75, 85, 126)), row.names = c(NA, -144L), .Names = c("cohort",
"month", "users"), class = "data.frame")
该图应类似于以下内容:
最佳答案
根据您提供的数据框,您的month
列处于正确的因子水平,但您的 cohort
列不是,因此更改 cohort
的因子级别列与您的 month
相同专栏。
library(ggplot2)
blues <- colorRampPalette(c('lightblue', 'darkblue'))
# Change the factor level
cohort.chart$cohort <- factor(cohort.chart$cohort, levels = levels(cohort.chart$month))
p <- ggplot(cohort.chart, aes(x=month, y=users, group=cohort))
p + geom_area(aes(fill = cohort)) +
scale_fill_manual(values = blues(12)) +
ggtitle('Users by cohort') +
theme(plot.title = element_text(hjust = 0.5)) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
关于r - ggplot 中的 Geom_area 顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46677840/
使用 geom_area 处理绘图时遇到了一些问题。我有一个包含日期和计数的数据框,如下所示: dates <- c("02/01/00", "02/04/00", "02/07/00", "02/1
我有看起来像这样的数据: df % ggplot(aes(x, y)) + geom_area() 但图表真的很刺耳。我如何将锯齿状边缘平滑成这样的: 谢谢! 最佳答案 扩展 Axem
我试图让 geom_area 具有取决于 Y 轴值的双色。 例如,如果我们有一个最大 X 值为 50 的 geom_area,我希望填充颜色低于 10 时为蓝色,高于 10 时为红色。 样本数据; d
我想根据因子变量“状态”区分绘图颜色的区域。我使用 fill=Status,但是,我看到绘图区域出现了中断。关于如何避免这种情况以及为什么会发生这种情况的任何想法/建议? df1 <- data.fr
我正在使用 geom_area绘制一个非常简单的数据集。使用 geom_line 绘图时一切正常,但是当我切换到 geom_area 时绘制更高的值。查看图表,将是代表我的问题的最佳方式: requi
我正在尝试使用 ggplot 的 geom_area 以不同颜色填充曲线下区域的切片(x 轴) .但不知何故,我无法使区域的侧面垂直。这是一个最小的可重现示例: library(ggplot2) x
我正在尝试生成一个堆叠区域图,但是 ggplot 会生成重叠区域。我试过其他与我类似的例子,但它们有效而我的无效。 > cx date type visitors 1 2009-1
R 新手,stackoverflow 新手,所以请原谅我.... 我正在尝试使用 ggplot2 在 R 中绘制时间序列图。我想显示两个折线图,它们在给定日期的值下方填充。我一直在尝试使用 geom_
我想将 geom_area() 的起始 y 级别从零移开。这是在下面的例子中,第一个函数调用没问题,但我怎样才能纠正第二个调用的情节: library(ggplot2) set.seed(123) m
对于数据: def.percent period valence 1 6.4827843 1984-1985 neg 2 5.8232425 1985-1986 ne
我正在尝试制作一个区域图,其中不同区域相互重叠而不是堆叠。 我有一个看起来像这样的数据框: r variable value 1 45.0 Cat 1 4.0572
这是这里问题的延续:Create non-overlapping stacked area plot with ggplot2 我有一个由以下代码创建的 ggplot2 面积图。我想要来自 names
使用 geom_area() 时是否可以强制执行堆栈顺序? ?我不明白为什么 geom_area(position = "stack")在 1605 年左右的堆栈顺序中产生这种奇怪的波动。 数据框中没
我有一些样本队列数据,在使用 ggplot() 绘制时未进行颜色编码或按正确的时间顺序显示。以下代码用于生成绘图: library(ggplot2) blues dput(cohort.chart)
我编写了以下函数来制作自定义堆叠图: stacked_plot % mutate(!!date_col := floor_date(!!date_col, unit = !!date_un
这个问题已经有答案了: Determining the area of Shapefiles (2 个回答) 已关闭去年。 我想使用 ggplot2 获取曲线下的面积。问题是我只有连续尺度(时间)上的
我正在使用 ggplot2 使用 geom_area 绘制以下数据。这些值被设计为 x 轴镜像。但《狗》情节的结局并没有反射(reflect)出来。 但是从这个数据帧中可以看出,狗应该以 x=100
在继续阅读之前,建议您下载并查看this question posted in this forum 中的原始代码。 . 我运行这个 ggplot 代码: ggplot(data=data, aes
我一直在尝试生成一个带有离散 x 变量的堆积面积图(因为我想显示财政年度,即“2013/14”,而不是日历年)。但是,将 x 轴变量转换为一个因子会阻止在最终图表中呈现 geom。 有解决办法吗? l
我有一个 geom_area 图,如下所示: 我想将 x 轴以上的所有内容着色为绿色,将 x 轴以下的所有内容着色为红色。我的数据中有一个类别列,其中包含所有正值的字符串“正”和所有负值的“负”,因此
我是一名优秀的程序员,十分优秀!