2

我正在尝试使用格子图形在条形图中绘制数据。我想按一个因素对条形图进行排序,并按另一个因素对条形图进行分组(即,按第一个因素定位,按第二个因素定位对比)。但是,我想按第一个(即位置)因素为条形着色。

在以下示例中,绘图以成对的红色和蓝色条形呈现。相反,我想要两个相邻的红色条、两个相邻的蓝色条和两个相邻的绿色条。

library(lattice)

data = runif( 6 )
facA = rep( c( "a", "b", "c" ), each = 2 )
facB = rep( c( "1", "2" ), 3 )
df = data.frame( "FactorA" = facA, "FactorB" = facB, "Data" = data )
df$FactorA = = as.factor( FactorA )
df$FactorB = = as.factor( FactorB )
test_colors = c( "red", "blue", "green" )
test_plot = barchart(FactorA ~ Data, groups = FactorB, data = df, 
                     horizontal = TRUE, col = test_colors, origin = 0 )
plot( test_plot )

提前致谢!

4

2 回答 2

2

这并不完美,但我认为它可以解决问题(如果我理解正确你的问题)。

barchart( FactorB ~ Data | FactorA, data = df, groups=FactorA, 
          horizontal = TRUE, col = test_colors, origin = 0,  layout=c(1,3))

Factor B ~ Data | FactorA意味着它将您的数据划分为FactorA与这些组中的每一个相对应的面板中,并根据FactorB. 颜色遵循已定义为groups.

在此处输入图像描述

于 2013-01-28T15:53:46.923 回答
0

如果你想用 'ggplot2' 来做这件事,你可以这样写:

ggplot(df, aes(x=FactorA, y=data, group=FactorB, fill=FactorA)) +
geom_bar(stat="identity", position="dodge") + 
coord_flip()

从那里开始,它只是适合您口味的化妆品剪裁,包括选择填充颜色。

于 2013-01-28T18:35:37.263 回答