如何绘制连续x轴的条形图/条形图

sta*_*ant 2 r bar-chart ggplot2

我想绘制一个,barplot但我在x轴上有日期,我希望这些日期正确间隔(因为它是非绝对的)

set.seed(1)
m = matrix(abs(rnorm(6)),3,2)
rownames(m) = as.Date(c('2011-01-01','2011-01-03','2011-01-10'))
barplot(t(m),beside=T,col=c('red','blue'),las=2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在这个例子中,我希望14984在右边偏移.我宁愿一个graphics解决方案,但ggplot2也很好

Pau*_*oso 7

你介意用'ggplot'吗?

library(ggplot2)
set.seed(1)
df <- data.frame(y=abs(rnorm(6)),
                 x=rep(as.Date(c('2011-01-01','2011-01-03','2011-01-10')),
                       times = 2),
                 g = factor(rep(c(1,2), each = 3)))    
ggplot(aes(x=x, y=y, group = g, fill = g), data = df) +
  geom_bar(stat = 'identity', position = 'dodge')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

您可以使用`scale_x_date'改善轴格式

library(scales)
ggplot(aes(x=x, y=y, group = g, fill = g), data = df) +
  geom_bar(stat = 'identity', position = 'dodge') +
  scale_x_date(breaks = '1 day') +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5))
Run Code Online (Sandbox Code Playgroud)

scale_X_date

并根据您的目的定制它

ggplot(aes(x=x, y=y, group = g, fill = g), data = df) +
  geom_bar(stat = 'identity', position = 'dodge') +
  scale_x_date(breaks = '1 day') +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) +
  scale_fill_manual('My\nclasses', values = c('1'='red', '2' = 'blue')) +
  labs(list(title = 'Barplot\n', x = ('Date'), y = 'Values'))
Run Code Online (Sandbox Code Playgroud)

定制情节