我正在尝试使用点阵图形在条形图中绘制数据。我想用一个因子和另一个因子分组(即,第一个因子的位置和第二个因素的位置对比度)。但是,我想用第一个(即位置)系数对条形图进行着色。
在以下示例中,使用成对的红色和蓝色条渲染绘图。相反,我想要两个相邻的红色条,两个相邻的蓝色条和两个相邻的绿色条。
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 )
提前致谢!
答案 0 :(得分: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
的颜色。
答案 1 :(得分:0)
如果你想用'ggplot2'做这个,你会这样写:
ggplot(df, aes(x=FactorA, y=data, group=FactorB, fill=FactorA)) +
geom_bar(stat="identity", position="dodge") +
coord_flip()
从那里开始,它只是化妆品剪裁,以满足您的口味,包括选择填充颜色。