Ниже приведен код, который работает с использованием функции plot () для запуска двумерной диаграммы рассеяния высоты по сравнению с весом, где точки классифицируются как «хорошие», «удовлетворительные», «плохие» в зависимости от того, равно ли значение класса 1, 2. или 3 соответственно. Баллы за «Хорошо»: ярко-зеленый, «Ярмарка», оливково-зеленый и Плохо, красный. Все точки имеют одинаковый размер (pch = 19). Возможно ли иметь разные размеры и прозрачность для каждой точки данных в зависимости от того, какая точка назначена в столбце «Группа»: либо непрозрачная точка и точка малого размера, полупрозрачная и среднего размера, либо точка 100% прозрачной и большой величины ,
Спасибо за ваши идеи!
df
# Group Class Height Weight
# 1 Opaque small 1 0.831777874 0.859223152
# 2 Semi-transprnt med 2 0.751019511 0.807521752
# 3 Semi-transprnt med 1 0.751019511 0.807521752
# 4 Transprnt large 3 0.527390539 0.599957241
# 5 Transprnt large 3 0.527390539 0.599957241
color <- c(rgb(0, 1, 0, 1), rgb(0.5, 0.5, 0), rgb(1, 0, 0))
plot(x=c(0.0, 0.5, 0.5, 0.0, 0.0), y=c(0.0, 0.0, 0.5, 0.5, 0.0),
type='l', col='gray', lwd=2,xlab='Height', ylab='Weight',
xlim=c(1,0), ylim=c(1, 0))
par(new=T)
plot(x=c(0.0, 0.5, 0.5, 0.0, 0.0), y=c(0.5, 0.5, 1, 1, 0.5),
type='l', col='gray', lwd=2, xlab='', ylab='',
xlim=c(1, 0.0), ylim=c(1, 0.0), axes=F)
par(new=T)
plot(x=c(0.5, 1, 1, 0.5, 0.5), y=c(0.0, 0.0, 0.5, 0.5, 0.0),
type='l', col='gray', lwd=2,
xlab='', ylab='', xlim=c(1, 0.0), ylim=c(1, 0.0), axes=F)
par(new=T)
plot(x=c(0.5, 1, 1, 0.5, 0.5), y=c(0.5, 0.5, 1, 1, 0.5), type='l',
col='gray', lwd=2, xlab='', ylab='',
xlim=c(1, 0.0), ylim=c(1, 0.0), axes=F)
par(new=T)
for (i in 1:3) {
plot(Height[Class==i], Weight[Class==i], xlim=c(0, 1), ylim=c(0, 1),
col=color[i], pch=19, xlab='', ylab='', axes=F)
par(new=T)
}
legend(0.8, 0.586,legend=c('Good', 'Fair', 'Poor'), pch=19,
col=color, title='Class')