首页 > 解决方案 > 绘制文件中存在的散点图颜色特定值

问题描述

我正在尝试使用包含值的文件突出显示散点图中的值,如果值名称存在于绘图和文件中,它应该突出显示散点图中的数据值如何实现我的输出

输入包含:

Model    HP      Av.
Integra  140    15.9
Legend   200    33.9
Century  90     172 
LeSabre  100    172
535i     208    30
Century2 110    15.7
LeSabre2    170 20.8
Roadmaster  180 23.7

我的代码:

konA.temp <- log(dat$HP)

konB.temp <- log(dat$Av.)

plot(konA.temp, konB.temp, pch=16, cex=0.4, 
     xlim=c(min(konA.temp, konB.temp), max(konA.temp, konB.temp)), 
     ylim=c(min(konA.temp, konB.temp), max(konA.temp, konB.temp)),
     xlab='log(konA)', ylab='log(konB)')

model-file.txt没有标题

  Integra
  Legend
  90
  100
  535i
  Century
  Century2
  LeSabre
  Roadmaster
  Riviera
  DeVille
  Seville
  Cavalier

我想用散点图中的任何颜色突出显示文件中存在的通用模型名称散点图

标签: rplot

解决方案


我会检查模型是否%in%是文件并创建一个不匹配和匹配的highlight虚拟对象。然后使用颜色向量并将其与虚拟对象进行子集化。12clr

dat <- transform(dat, highlight=1+(dat$Model %in% unlist(m.names)))
clr <- c("red", "green")

只需做情节,with以便highlight可以识别假人。

with(dat,
     plot(log(HP), log(Av.), pch=16, cex=1, 
          xlim=c(min(konA.temp, konB.temp), max(konA.temp, konB.temp)),
          ylim=c(min(konA.temp, konB.temp), max(konA.temp, konB.temp)),
          xlab='log(konA)', ylab='log(konB)', col=clr[highlight]))

看起来像这样:

在此处输入图像描述


数据:

dat <- read.table(header=T,  text="Model    HP      Av.
Integra  140    15.9
Legend   200    33.9
Century  90     172 
LeSabre  100    172
535i     208    30
Century2 110    15.7
LeSabre2    170 20.8
Roadmaster  180 23.7")

m.names <- read.table(text="Integra
Legend
90
100
535i
Century
Century2
LeSabre
Roadmaster
Riviera
DeVille
Seville
Cavalier")

推荐阅读