小编Mat*_*gna的帖子

ggplot2:yearmon 比例和 geom_bar

不仅仅是一个解决方案,我想了解为什么应该很容易的事情,实际上并非如此。

[我从另一篇触及该问题的帖子中借用了部分代码,但最终得到了一个我不喜欢的解决方案]

library(ggplot2)
library(xts)
library(dplyr)
library(scales)

csvData <- "dt,status
2015-12-03,1
2015-12-05,1
2015-12-05,0
2015-11-24,1
2015-10-17,0
2015-12-18,0
2016-06-30,0
2016-05-21,1
2016-03-31,0
2015-12-31,0"

tmp <- read.csv(textConnection(csvData))
tmp$dt <- as.Date(tmp$dt)
tmp$yearmon <- as.yearmon(tmp$dt)
tmp$status <- as.factor(tmp$status)

### Not good. Why?
ggplot(tmp, aes(x = yearmon, fill = status)) + 
  geom_bar() + 
  scale_x_yearmon()

### Almost good but long-winded and ticks not great
chartData <- tmp %>%
  group_by(yearmon, status) %>%
  summarise(count = n()) %>%
  as.data.frame()
ggplot(chartData, aes(x = yearmon, y = count, fill = status)) + 
  geom_col() + …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 xts

8
推荐指数
1
解决办法
4639
查看次数

如何在ggplot2中制作具有自由刻度和空间的水平、多面条形图?

很少有线程处理类似的问题,但我确实没有设法让这个线程像我期望的那样工作。

我有这个数据集:

      Item AssetClass   variable   value
89   F/EER    Hybrids 2016-09-15  5.0014
103 F/SOLG         MA 2016-09-15  1.5829
104  F/SOP         MA 2016-09-15 -5.4365
105  F/SRV         MA 2016-09-15  6.1000
49   F/EER    Hybrids 2016-06-15  0.7179
63  F/SOLG         MA 2016-06-15  0.0000
64   F/SOP         MA 2016-06-15  4.7124
65   F/SRV         MA 2016-06-15 13.5132
9    F/EER    Hybrids 2016-03-15  0.9599
23  F/SOLG         MA 2016-03-15  0.0000
24   F/SOP         MA 2016-03-15  6.6873
25   F/SRV         MA 2016-03-15  9.9191
Run Code Online (Sandbox Code Playgroud)

具有以下结构:

'data.frame':   12 obs. of  4 variables:
 $ Item      : Factor w/ 40 levels …
Run Code Online (Sandbox Code Playgroud)

r facet ggplot2

5
推荐指数
1
解决办法
1089
查看次数

ggplot日期比例向前移动一个月

我确信这是一个简单的,但我找不到其他帖子的解决方案.

如果我运行这个:

test <- data.frame(dates = as.Date(c("2016-10-31","2016-11-30", "2016-12-31", "2017-01-31")), 
                   values = c(1, 2, 3, 4))
ggplot(test, aes(x = dates, y = values)) +
  geom_bar(position="stack", stat = "identity") + 
  scale_x_date(breaks = date_breaks("1 months"),labels = date_format("%b-%y"))
Run Code Online (Sandbox Code Playgroud)

我明白了:

在此输入图像描述

如您所知,X轴上的所有日期都会向前移动到下个月.我尝试使用其他地方建议的scale包,但它没有改变一件事.

我可以通过使用以下方法调整日期来避免这种情况:

test$dates <- as.Date(format(test$dates, "%Y-%m-1"))
Run Code Online (Sandbox Code Playgroud)

提供这个(不使用scale_x_date位):

在此输入图像描述

但我确信有一种优雅的方法来规避这个问题.

r date ggplot2

5
推荐指数
1
解决办法
572
查看次数

标签 统计

ggplot2 ×3

r ×3

date ×1

facet ×1

xts ×1