r - 如何绘制具有连续 x 轴的条形图/条形图

标签 r ggplot2 bar-chart

我想绘制一个 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)

enter image description here

在这个例子中,我希望 14984 向右偏移。 我更喜欢 graphics 解决方案,但 ggplot2 也不错

最佳答案

您介意改用“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')

enter image description here

您可以使用“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))

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'))

customized plot

关于r - 如何绘制具有连续 x 轴的条形图/条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22527809/

相关文章:

r - 如何删除显示 N/A 的栏?

r - 稳定分布对数似然和 AIC 值

r - 为唯一事件创建新列,然后按组对 R 中的事件进行计数

r - 将字符串转换为数据框名称

r - 如何抑制水平网格线而不删除 y 轴上的刻度线?

r - 图均值和标准差

javascript - 将 Chart.js 比例限制为整数

r - 如何使用 summarise_at 将不同的函数应用于不同的列?

r - 警告 : Error in as. 矢量 : cannot coerce type 'environment' to vector of type 'character' in R while running on the shiny. 我能做什么?

python - seaborn 不在 barplot 中着色条