r - 使用 ggplot2 在 R 上创建水平图:显示百分比变化
问题描述
我是这方面的初学者,我真的很迷茫。
我想创建一个水平图表,使用 ggplot2 和 R 显示不同城镇的销售额百分比变化。有人可以指导我创建图表的方法吗?
这是我想做的图表类型。(来源:https ://harmoniccode.blogspot.com/2017/11/friday-fun-li-horizon-charts.html )
提前感谢您提供的任何帮助!
编辑:这是数据的示例代码:
x <- data.frame(
"town" =c('sad','sad','sad','sad','happy','happy','happy','happy'),
"month"=c("2017-01","2017-02","2017-03","2017-04","2017-01","2017-02","2017-03","2017-04"),
"median_sales" = c(336500,355000,375000,395000,359000,361500,36000,375000),
"percentage_change" = c(NA,5.4977712,5.6338028,5.3333333,NA,0.6963788,-0.4149378, 4.1666667
))
x <-
x %>%
mutate(month = floor_date(as_date(as.yearmon(month)), "month"))
解决方案
给出一个可以产生合理绘图的示例,并将您的示例数据作为数据而不是图像提供会很有帮助。
如果你用谷歌搜索“地平线图”,第一个答案应该会给你你需要的东西。
这是一个基于您提供的数据的简单示例:
library(latticeExtra)
sales.ts <- ts(matrix(sales$median_sales, ncol=2), names = c("sad", "happy"),
start = c(2017, 1), frequency = 365)
horizonplot(sales.ts)
我认为这正确地呈现了您的结果,但由于您没有提供真实的数据集,因此很难说清楚。
更新:根据提供的数据,这就是答案。同样,由于您只提供了一个时间点,因此水平图可能不是您想要的。它们旨在绘制时间序列。
x.ts <- ts(matrix(x$median_sales, ncol=2), names = c("sad", "happy"),
start = c(2015, 1), frequency = 12)
horizonplot(x.ts)
推荐阅读
- java - 用于匹配任意两个 HTML 标签的正则表达式
- java - OpenCSV 写入其他列
- vue.js - Vue + Nuxt js:如何使用引导导航栏将动态活动类应用于父菜单
- javascript - 使函数分别影响每个测验 ID
- docker - Kubernetes Jenkins Slave Pod - Dotnet 恢复问题
- android - 如何在android中的开关上显示进程状态?
- android - 带有贡献者的 Dagger 子组件
- bash - 无法在while循环中读取文件
- bixby - 如何防止 Bixby 中的重复操作执行?
- angular - 将大数组对象分解成更小的块