我创建了一个 x 轴上有四分位的条形图。我的问题是,四分位的值为:20191、20192、20193、20194、20201、20202、20203 等。因此,如果我创建图表,20194 和 20201 之间会有空格。我猜这与 x 轴为有关numerical
。有没有办法删除 20194 和 20201 之间的空格?
我创建了一个示例数据集:
Quartal <- c(rep(20191, 3), rep(20192, 3), rep(20193, 3), rep(20194, 3), rep(20201, 3),rep(20202, 3))
Condition <- rep(c("Value1", "Value2", "Value3"), 6)
Values <- c(100, 150, 125, 200, 185, 300, 400, 100, 150, 200, 225, 300, 100, 150, 125, 400, 350, 300)
我用来创建图表的代码:
dataset <- data.frame(Quartal, Condition, Values)
ggplot(dataset, aes(Quartal, Values, group= Condition, colour=Condition, fill=Condition))+
geom_bar(stat="identity", position = position_dodge())
我尝试向数据集添加一行数值,然后在 x 轴上绘制数值。
dataset$row_num<-seq(1:nrow(dataset))
ggplot(dataset, aes(row_num, Values, group= Condition, colour=Condition, fill=Condition))+
geom_bar(stat="identity", position = position_dodge())
问题是,我丢失了四分音符之间的空格。我想最简单的方法是删除第一个例子中的空格。但我愿意接受其他建议。
问题出现的原因在于 x 轴(四分位数)上的值被视为数字而不是类别。因此,值 20194 和 20201 是分开的,因为它们在数字上不连续。解决方案是将四分位数变量转换为,
factor
以便将 x 轴视为离散值。输出:
as.yearqtr
您可以使用包中的函数zoo
强制转换为日期季度数据类。zoo
支持ggplot2
并且您的绘图代码会自动处理 x 轴。在管道中转换数据集可能更好
dplyr
,如下所示。