晶格点图 条件填充颜色

4

问题:

我有一个数据框,想要用lattice的面板点图(不使用ggplot2)进行可视化。它包含一个变量,应该根据条件使用来突出显示不同颜色填充的数据。

可重现的示例:

require(lattice)

# Make reproducable data frame
df= mtcars
df= cbind(car = rownames(df), df) 
rownames(df)= NULL
df=df[1:5, c("car", "mpg", "cyl", "carb")]

df
# output:
#                car  mpg cyl carb
#         Mazda RX4 21.0   6    4
#     Mazda RX4 Wag 21.0   6    4
#        Datsun 710 22.8   4    1
#    Hornet 4 Drive 21.4   6    1
# Hornet Sportabout 18.7   8    2

# I am interested to highlight those data which have carb=1
df[df$carb==1,]

#            car  mpg cyl carb
#     Datsun 710 22.8   4    1
# Hornet 4 Drive 21.4   6    1

dotplot(car ~ mpg | as.factor(cyl), data=df, layout=c(3,1))

这是一个绘图示例:

未高亮的点图。

问题:

我想要实现以下图表:

有目标高亮的点图。

如何重构代码以实现此目的?

1个回答

6
您可以尝试这个方法:
dotplot(car ~ mpg | as.factor(cyl), data=df, layout=c(3,1),
        pch = 19, groups = carb < 2, col = c("blue", "red"))
groups参数carb < 2会得到一个逻辑向量。按字母表顺序,FALSETRUE之前。因此,对于carb < 2为假的情况,使用第一种颜色(蓝色),而对于carb < 2为真的情况,则使用第二种颜色(红色)。
?dotplot关于group参数的解释:一个在数据中求值的变量或表达式,在每个面板内作为分组变量,通常用于通过变化图形参数如颜色和线型来区分不同的组。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接