列之间具有正确间距的格子条形图

时间:2019-04-20 20:49:31

标签: r plot lattice

我还有另一个问题。假设我用以下代码绘制条形图:

require(lattice)
data <- data.frame(x = c(1,7,10,14,20,21), y = c(0.1,0.6,0.4,0.5,0.3,0.7))
barchart(data$y ~ data$x, horizontal = FALSE)

由于条形图等距分布,因此产生的图片存在问题,但由于x实际上在值之间有很大的间隔,因此不应该这样。例如,对于x = 1和x = 7,我需要6个小节之间的空白空间。如何解决此问题?

2 个答案:

答案 0 :(得分:0)

这是什么:

require(ggplot2)
ggplot(data, aes(x, y)) + geom_bar(stat='identity', fill='lightblue') + theme_classic()

enter image description here

答案 1 :(得分:0)

使用xyplot并指定面板功能如何?这会将x值保留为数值,而不是允许barchart将它们转换为因子。使用panel = function(...) panel.barchart(...)格式,您可以添加其他选项来控制条形图的出现。

require(lattice)
xyplot(y ~ x, data, panel = panel.barchart, horizontal = FALSE)

P.S。我建议您避免使用显式的data$xdata$y形式,并允许该函数对提供给该函数的数据中的变量求值。当事物发生变化时,显式引用通常会导致意外结果。