Могу ли я назначить цвета для MASS :: parcoord () на основе логического условия? - PullRequest
1 голос
/ 27 марта 2019

Вот код для создания параллельного координатного графика:

require(MASS)
shoes <- data.frame(shoes)
parcoord(shoes)

Набор данных shoes используется для отображения мощности парного t-теста, который является просто фоновой информацией.В обуви есть две колонки, A и B, которые представляют износ из двух материалов подошвы.Если проанализировать правильно, между материалами есть огромная разница.

Хороший способ показать парные данные - это параллельный координатный график, но, как вы можете видеть, это практически ничто без какого-либо цвета.Я хотел бы добавить два цвета, скажем, красный, когда A > B, и зеленый, когда A < B.Происходят обе ситуации:

> shoes$A > shoes$B
 [1] FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE

Моя проблема заключается в том, что parcoord() циклически перебирает цвета по мере прохождения наблюдений, поэтому я не уверен, как указать цвет на основе логического теста.Я пробовал

parcoord(shoes, col = ifelse(shoes$A > shoes$B, "red", "green"))

и различные игры с числами (много, кроме добавления 26) в

my_colors <- colors()[as.numeric(shoes$A > shoes$B) + 26]
parcoord(shoes, col = my_colors)

, но, похоже, ничего не работает.Я либо получаю спектр цветов, все одного цвета, либо все одного цвета, за исключением верхнего и нижнего элементов.Я бы хотел, чтобы FALSE генерировал один цвет, TRUE - другой.

1 Ответ

0 голосов
/ 27 марта 2019

Я не уверен, получаю ли я это прямо, но ваше условие A > B верно только для максимума и минимума shoes.

shoes <- within(shoes, criterium <- ifelse(A > B, "bigger", "smaller"))

       A    B criterium
1  13.2 14.0   smaller
2   8.2  8.8   smaller
3  10.9 11.2   smaller
4  14.3 14.2    bigger
5  10.7 11.8   smaller
6   6.6  6.4    bigger
7   9.5  9.8   smaller
8  10.8 11.3   smaller
9   8.8  9.3   smaller
10 13.3 13.6   smaller

minmax <- c(min(min(shoes$A), min(shoes$B)), max(max(shoes$A), max(shoes$B)))

> minmax
[1]  6.4 14.3

Так что ваш график параллельных координат будетпоказывать только верхнюю и нижнюю записи в «красном».Другими словами: ваше решение правильное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...